Satisfaction Ordering #
Satisfaction-based orderings: ordering elements by how many criteria they satisfy. Used by Kratzer modal semantics (worlds by propositions) and Phillips-Brown desire semantics (propositions by desires).
The induced ordering is a NormalityOrder — connecting Kratzer's ordering
source semantics to the default reasoning infrastructure in Core/Order/.
Equations
- o.satisfiedBy a = List.filter (o.satisfies a) o.criteria
Instances For
Weak ordering: a ≥ a' iff a satisfies everything a' satisfies.
Equations
- o.atLeastAsGood a a' = (o.satisfiedBy a').all (o.satisfies a)
Instances For
Strict ordering: a > a' iff a ≥ a' but not a' ≥ a.
Equations
- o.strictlyBetter a a' = (o.atLeastAsGood a a' && !o.atLeastAsGood a' a)
Instances For
Equivalence: a and a' satisfy the same criteria.
Equations
- o.equivalent a a' = (o.atLeastAsGood a a' && o.atLeastAsGood a' a)
Instances For
Best elements: those at least as good as all others.
Equations
- o.best candidates = List.filter (fun (a : α) => candidates.all fun (a' : α) => o.atLeastAsGood a a') candidates
Instances For
Prop-valued ordering: a ≥ a' iff atLeastAsGood a a' = true.
Equations
- o.le a a' = (o.atLeastAsGood a a' = true)
Instances For
The induced NormalityOrder: connects satisfaction-based orderings
(Kratzer modal semantics, Phillips-Brown desire) to the default
reasoning infrastructure (optimal, refine, respects, CR1–CR4).
Equations
- o.toNormalityOrder = { le := o.le, le_refl := ⋯, le_trans := ⋯ }