| 123456789101112131415 |
- \begin{tipo}{Sistema}
- \observador{campo}{s: Sistema}{Campo}
- \observador{estadoDelCultivo}{s: Sistema, i, j: \ent}{EstadoCultivo}
- \requiere{enRango(dimensiones(s), i, j) \land contenido(campo(s), i,j) == Cultivo}
- \observador{enjambreDrones}{s: Sistema}{[Drone]}
- \medskip
- \invariante[identificadoresUnicos]{sinRepetidos(\comp{id(d)}{d \selec enjambreDrones(s)})}
- \invariante[unoPorParcela]{(\forall d, d' \selec dronesEnVuelo(s), id(d) \neq id(d')) posicionActual(d) \neq posicionActual(d')}
- \invariante[siNoVuelanEstanEnGranero]{(\forall d \selec enjambreDrones(s), \neg enVuelo(d)) \\ posicionActual(d) == posicionGranero(campo(s))}
- \invariante[siEstanEnVueloElVueloEstaEnRango]{(\forall d \selec dronesEnVuelo(s)) (\forall v \selec vueloRealizado(d))\\ enRango(dimensiones(campo(s), prm(v), sgd(v))}
- \end{tipo}
- \aux{dronesEnVuelo}{s: Sistema}{[Drone]}{\comp{d}{d \selec enjambreDrones(s), enVuelo(d)}}
|