The operation sortLeq takes as arguments the metarepresentation
of a module
and the metarepresentations
of two types, that is, either sorts or kinds.
op sortLeq : Module Type Type ~> Bool [special (...)] .
According to whether the types passed to sortLeq as arguments are metarepresented sorts or kinds, we can distinguish the following cases:
Maude> reduce in META-LEVEL :
sortLeq(upModule('NUMBERS, false), 'Zero, 'Nat) .
result Bool: true
Maude> reduce in META-LEVEL :
sortLeq(upModule('NUMBERS, false), 'Zero, 'NzNat) .
result Bool: false
Maude> reduce in META-LEVEL :
sortLeq(upModule('NUMBERS, false), '`[Zero`], '`[Nat`]) .
result Bool: true
Maude> reduce in META-LEVEL :
sortLeq(upModule('NUMBERS, false), '`[Zero`], '`[Bool`]) .
result Bool: false
Maude> reduce in META-LEVEL :
sortLeq(upModule('NUMBERS, false), '`[Zero`], 'Bool) .
result Bool: false
Maude> reduce in META-LEVEL :
sortLeq(upModule('NUMBERS, false), 'Zero, '`[NatSet`]) .
result Bool: true