sig Id { } sig Proyecto { idProyecto: Id, idSucursal: Id, equipo: set Empleado } abstract sig Empleado { } sig Permanente extends Empleado { } sig Gerente, Desarrollador in Permanente { } sig Contratista extends Empleado { supervisor: Gerente } /** ------------------------------------------------------------------------------------------------------------------------------------------------------ **/ /** ----No quitar ni comentar -----------------------------------------------------------------------------------------------------------------**/ -- facts destinado a obtener instancias con mas de dos proyectos y empleados fact{#Proyecto > 2} fact{#Empleado > 2} -- facts destinados a establecer la capacidad del colectivo fact{all p:Proyecto | #p.equipo < 12} /** --------------------------------------------------------------------------------------------------------------------------------------------------- **/ fact{ (Proyecto.idProyecto& Proyecto.idSucursal) = none} fact{no disj p1,p2: Proyecto | p1.idProyecto = p2.idProyecto} fact{Permanente = Gerente+Desarrollador} run {} for 4