campo.tex 1.0 KB

1234567891011121314
  1. \begin{tipo}{Campo}
  2. \observador{dimensiones}{c: Campo}{(Ancho, Largo)}
  3. \observador{contenido}{c: Campo, i, j: \ent}{Parcela}
  4. \requiere[enRango]{0 \leq i < prm(dimensiones(c)) \land 0 \leq j < sgd(dimensiones(c))}
  5. \medskip
  6. \invariante[dimensionesValidas]{prm(dimensiones(c)) > 0 \land sgd(dimensiones(c)) > 0}
  7. \invariante[unaSolaCasa]{|[(i, j) | i \selec \rangoca{0}{prm(dimensiones(c))}, j \selec \rangoca{0}{sgd(dimensiones(c))}, \\ contenido(c, i, j) == Casa]| == 1}
  8. \invariante[unSoloGranero]{|[(i, j) | i \selec \rangoca{0}{prm(dimensiones(c))}, j \selec \rangoca{0}{sgd(dimensiones(c))}, \\ contenido(c, i, j) == Granero]| == 1}
  9. \invariante[algoDeCultivo]{|[(i, j) | i \selec \rangoca{0}{prm(dimensiones(c))}, j \selec \rangoca{0}{sgd(dimensiones(c))}, \\ contenido(c, i, j) == Cultivo]| \geq 1}
  10. \invariante[posicionesAlcanzables]{posicionesAlcanzablesEn100(c)}
  11. \end{tipo}
  12. \noindent \aux{posicionesAlcanzablesEn100}{c: Campo}{\bool}{\\alcanzableEn100(posicionGranero(c), prm(dimensiones(c)), sgd(dimensiones(c)))}