module airportClassroom abstract sig Equipment { loc : Location } abstract sig Location { } sig Plane, Vehicle extends Equipment {} sig Runway, Taxiway, Gate extends Location {} fact Rules { Runway.(~loc) in Plane all g: Gate | lone (g.(~loc) & Plane) (Plane.loc & Gate) in (Gate & Vehicle.loc) } pred show () { } run show for 10 but exactly 3 Gate, exactly 5 Plane