The four Aristotelian relations [DS18a] #
Two elements φ, ψ of a Boolean algebra stand in one of four Aristotelian relations ([DS24], Definition 1):
| Relation | Condition | mathlib |
|---|---|---|
| Contradictory | φ ⊓ ψ = ⊥ and φ ⊔ ψ = ⊤ | IsCompl |
| Contrary | φ ⊓ ψ = ⊥, φ ⊔ ψ ≠ ⊤ | Disjoint ∧ ¬ Codisjoint |
| Subcontrary | φ ⊓ ψ ≠ ⊥, φ ⊔ ψ = ⊤ | ¬ Disjoint ∧ Codisjoint |
| Subalternation | φ < ψ | (· < ·) |
The collection {CD, C, SC, SA} is the Aristotelian geometry; elements
standing in none of the four are unconnected ([SD14]).
The relations are defined over an arbitrary [BooleanAlgebra α] — the abstract
"template" of [DS24]. Concrete instances follow by plugging
in a Boolean algebra: the powerset Set W, predicate spaces W → Prop /
W → Bool, bitvectors Fin n → Bool, or a Lindenbaum–Tarski algebra. The
relations are mathlib's IsCompl / Disjoint / Codisjoint / <, so they
inherit that API.
Main declarations #
IsContradictory,IsContrary,IsSubcontrary,IsSubaltern,IsUnconnected— the relations as predicates over[BooleanAlgebra α].OppositionRel/ImplicationRel,opposition/implication— the two derived relation axes ([DKD25]); each a total classifier with*_eq_*characterizations, jointly recoveringIsUnconnectedasNCD ∧ NI.isContradictory_apply_orderIsoand siblings — a Boolean isomorphism (OrderIso) is an Aristotelian isomorphism: it preserves and reflects all four relations ([DKVD24]).isContradictory_iff_foralland siblings — the pointwise∀ wcharacterization at theW → Boolinstance.
Implementation notes #
IsContradictory := IsCompl, IsSubaltern := (· < ·), and contrariety /
subcontrariety are Disjoint / Codisjoint combinations, so symmetry and the
OrderIso transfer come almost entirely from mathlib's order API.
Todo #
- A first-class
AristotelianMorphism/ category of diagrams ([DKVD24]); theOrderIsotransfer lemmas are the immediately-useful slice.
The opposition relation between two elements of a Boolean algebra
([DKD25]): the four mutually-exclusive, jointly-exhaustive cells of
(Disjoint?, Codisjoint?).
- contradictory : OppositionRel
Disjoint ∧ Codisjoint— complementary (IsCompl). - contrary : OppositionRel
Disjoint ∧ ¬ Codisjoint. - subcontrary : OppositionRel
¬ Disjoint ∧ Codisjoint. - nonContradictory : OppositionRel
¬ Disjoint ∧ ¬ Codisjoint— the residualNCD.
Instances For
Equations
- Aristotelian.instDecidableEqOppositionRel x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Aristotelian.instReprOppositionRel = { reprPrec := Aristotelian.instReprOppositionRel.repr }
Equations
The implication relation between two elements ([DKD25]): the four cells
of (x ≤ y?, y ≤ x?). left is (proper) subalternation, bi is equality, nonImplication
is incomparability.
- bi : ImplicationRel
x ≤ y ∧ y ≤ x— equal. - left : ImplicationRel
x ≤ y ∧ ¬ y ≤ x— subalternation (xstrictly entailsy). - right : ImplicationRel
¬ x ≤ y ∧ y ≤ x. - nonImplication : ImplicationRel
¬ x ≤ y ∧ ¬ y ≤ x— incomparable.
Instances For
Equations
- Aristotelian.instDecidableEqImplicationRel x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Aristotelian.instReprImplicationRel = { reprPrec := Aristotelian.instReprImplicationRel.repr }
Equations
The four relations #
BA-generic contradictoriness: φ and ψ are complementary — mathlib's
IsCompl (Disjoint ∧ Codisjoint); in a Boolean algebra, ψ = φᶜ.
Equations
- Aristotelian.IsContradictory φ ψ = IsCompl φ ψ
Instances For
BA-generic contrariety: jointly impossible (Disjoint) but not jointly
exhaustive (¬ Codisjoint — both can be false).
Equations
- Aristotelian.IsContrary φ ψ = (Disjoint φ ψ ∧ ¬Codisjoint φ ψ)
Instances For
BA-generic subcontrariety: not jointly impossible (¬ Disjoint — both can
be true) but jointly exhaustive (Codisjoint).
Equations
- Aristotelian.IsSubcontrary φ ψ = (¬Disjoint φ ψ ∧ Codisjoint φ ψ)
Instances For
BA-generic proper subalternation: φ strictly entails ψ, i.e. φ < ψ.
Equations
- Aristotelian.IsSubaltern φ ψ = (φ < ψ)
Instances For
BA-generic unconnectedness: φ and ψ stand in none of the four
Aristotelian relations. Per [DS24].
Equations
- Aristotelian.IsUnconnected φ ψ = (¬Disjoint φ ψ ∧ ¬Codisjoint φ ψ ∧ ¬φ ≤ ψ ∧ ¬ψ ≤ φ)
Instances For
Symmetry #
IsContradictory is symmetric via IsCompl.symm (h.symm); contrariety and
subcontrariety get their own lemmas; IsSubaltern is directional.
Transfer along a Boolean isomorphism #
A Boolean isomorphism — an OrderIso of Boolean algebras — is an Aristotelian
isomorphism: it preserves and reflects all four relations
([DKVD24], [DS24]; the abstract
content of [DS18a]'s bitstring transfer). Each lemma is a
direct consequence of mathlib's OrderIso order-preservation API.
Two-axis classifiers (opposition × implication) #
The relation between two elements factors into a (Disjoint?, Codisjoint?) opposition and a
(≤?, ≥?) implication — each a total, mutually-exclusive classifier ([DKD25]),
so no contingency hypothesis is needed.
The opposition relation of x, y, from the meet/join tests.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The implication relation of x, y, from the order tests.
Equations
- One or more equations did not get rendered due to their size.
Instances For
IsUnconnected is exactly the (NCD, NI) cell of the opposition × implication product
([DKD25]).
A Boolean isomorphism preserves the opposition relation.
A Boolean isomorphism preserves the implication relation.
Pointwise characterization for W → Bool #
A W → Bool predicate is an element of the Boolean algebra W → Bool; the
abstract relations unfold to the familiar model-theoretic ∀ w conditions
(validity ⊨ φ := ∀ w, φ w = true).