Predicate modification: ⟦α β⟧ = λx. ⟦α⟧(x) ∧ ⟦β⟧(x)
Equations
- Semantics.Composition.Modification.predMod p q x = (p x && q x)
Instances For
Equations
Instances For
The adjective classification hierarchy (intersective, subsective,
privative, extensional) is in Lexical/Adjective/Classification.lean.
This file provides the composition operation (Predicate Modification)
that implements the intersective case.
def
Semantics.Composition.Modification.predicateModification
{F : Core.Logic.Intensional.Frame}
(p₁ p₂ : F.Denot (Core.Logic.Intensional.Ty.e ⇒ Core.Logic.Intensional.Ty.t))
:
Equations
- (p₁ ⊓ₚ p₂) x = (p₁ x ∧ p₂ x)
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
Semantics.Composition.Modification.predicateModification_assoc
{F : Core.Logic.Intensional.Frame}
(p₁ p₂ p₃ : F.Denot (Core.Logic.Intensional.Ty.e ⇒ Core.Logic.Intensional.Ty.t))
:
theorem
Semantics.Composition.Modification.predicateModification_true_right
{F : Core.Logic.Intensional.Frame}
(p : F.Denot (Core.Logic.Intensional.Ty.e ⇒ Core.Logic.Intensional.Ty.t))
:
(p ⊓ₚ fun (x : F.Denot Core.Logic.Intensional.Ty.e) => True) = p
theorem
Semantics.Composition.Modification.predicateModification_true_left
{F : Core.Logic.Intensional.Frame}
(p : F.Denot (Core.Logic.Intensional.Ty.e ⇒ Core.Logic.Intensional.Ty.t))
:
(fun (x : F.Denot Core.Logic.Intensional.Ty.e) => True) ⊓ₚ p = p
theorem
Semantics.Composition.Modification.predicateModification_false_right
{F : Core.Logic.Intensional.Frame}
(p : F.Denot (Core.Logic.Intensional.Ty.e ⇒ Core.Logic.Intensional.Ty.t))
:
(p ⊓ₚ fun (x : F.Denot Core.Logic.Intensional.Ty.e) => False) = fun (x : F.Denot Core.Logic.Intensional.Ty.e) => False
theorem
Semantics.Composition.Modification.predicateModification_false_left
{F : Core.Logic.Intensional.Frame}
(p : F.Denot (Core.Logic.Intensional.Ty.e ⇒ Core.Logic.Intensional.Ty.t))
:
(fun (x : F.Denot Core.Logic.Intensional.Ty.e) => False) ⊓ₚ p = fun (x : F.Denot Core.Logic.Intensional.Ty.e) => False
theorem
Semantics.Composition.Modification.intersective_equivalence
{F : Core.Logic.Intensional.Frame}
(p q : F.Denot (Core.Logic.Intensional.Ty.e ⇒ Core.Logic.Intensional.Ty.t))
(x : F.Entity)
:
(p ⊓ₚ q) x ↔ p x ∧ q x
(P ⊓ₚ Q)(x) ↔ P(x) ∧ Q(x)
theorem
Semantics.Composition.Modification.intersective_equivalence_set
{F : Core.Logic.Intensional.Frame}
(p q : F.Denot (Core.Logic.Intensional.Ty.e ⇒ Core.Logic.Intensional.Ty.t))
(x : F.Entity)
:
x ∈ Core.Logic.Intensional.predicateToSet (p ⊓ₚ q) ↔ x ∈ Core.Logic.Intensional.predicateToSet p ∧ x ∈ Core.Logic.Intensional.predicateToSet q
theorem
Semantics.Composition.Modification.pm_entails_left
{F : Core.Logic.Intensional.Frame}
(p q : F.Denot (Core.Logic.Intensional.Ty.e ⇒ Core.Logic.Intensional.Ty.t))
(x : F.Entity)
(h : (p ⊓ₚ q) x)
:
p x
theorem
Semantics.Composition.Modification.pm_entails_right
{F : Core.Logic.Intensional.Frame}
(p q : F.Denot (Core.Logic.Intensional.Ty.e ⇒ Core.Logic.Intensional.Ty.t))
(x : F.Entity)
(h : (p ⊓ₚ q) x)
:
q x
theorem
Semantics.Composition.Modification.pm_intro
{F : Core.Logic.Intensional.Frame}
(p q : F.Denot (Core.Logic.Intensional.Ty.e ⇒ Core.Logic.Intensional.Ty.t))
(x : F.Entity)
(hp : p x)
(hq : q x)
:
(p ⊓ₚ q) x