MatchingLogic.SetVariables #
Patterns extended with free set variables. There is no μ and no binder
for set variables: the point of Remark 17 concerns FREE set variables only.
- var {S : Signature} {Var SVar : Type} : Var → SPattern S Var SVar
- svar {S : Signature} {Var SVar : Type} : SVar → SPattern S Var SVar
- app {S : Signature} {Var SVar : Type} (σ : S.Sym) : (Fin (S.arity σ) → SPattern S Var SVar) → SPattern S Var SVar
- imp {S : Signature} {Var SVar : Type} : SPattern S Var SVar → SPattern S Var SVar → SPattern S Var SVar
- bot {S : Signature} {Var SVar : Type} : SPattern S Var SVar
- ex {S : Signature} {Var SVar : Type} : Var → SPattern S Var SVar → SPattern S Var SVar
Instances For
A valuation now sends element variables to points and set variables to arbitrary subsets.
- elem : Var → M.carrier
The valuation of element variables.
The valuation of set variables.
Instances For
The denotation, extending Section 2 with the clause ρ(X) = ρ(X).
Equations
- One or more equations did not get rendered due to their size.
- MatchingLogic.SetVariables.sdenote M x✝ (MatchingLogic.SetVariables.SPattern.var x_2) = {x✝.elem x_2}
- MatchingLogic.SetVariables.sdenote M x✝ (MatchingLogic.SetVariables.SPattern.svar X) = x✝.sets X
- MatchingLogic.SetVariables.sdenote M x✝ MatchingLogic.SetVariables.SPattern.bot = ∅
- MatchingLogic.SetVariables.sdenote M x✝ (MatchingLogic.SetVariables.SPattern.app σ f) = M.app σ fun (i : Fin (S.arity σ)) => MatchingLogic.SetVariables.sdenote M x✝ (f i)
- MatchingLogic.SetVariables.sdenote M x✝ (a.imp b) = (MatchingLogic.SetVariables.sdenote M x✝ a)ᶜ ∪ MatchingLogic.SetVariables.sdenote M x✝ b
Instances For
M ⊨ φ, with the valuation quantifier ranging over set valuations too --
which is exactly what makes a free set variable behave unlike a constant.
Equations
- MatchingLogic.SetVariables.SSat M φ = ∀ (ρ : MatchingLogic.SetVariables.SVal M Var SVar), MatchingLogic.SetVariables.sdenote M ρ φ = Set.univ
Instances For
Γ ⊨ φ in the extended language.
Equations
- MatchingLogic.SetVariables.SGlobalCons Γ φ = ∀ (M : MatchingLogic.Model S), (∀ γ ∈ Γ, MatchingLogic.SetVariables.SSat M γ) → MatchingLogic.SetVariables.SSat M φ
Instances For
The two halves of the counterexample #
No model satisfies a bare set variable, because the valuation sending it
to ∅ makes it not total. This is the step a constant does not admit.
Hence {X} ⊨ ⊥ holds vacuously.
A one-point model in which the constant d denotes the whole carrier.
Equations
- One or more equations did not get rendered due to their size.
Instances For
But {d} ⊭ ⊥, as the model with d_M = M shows. So replacing the set
variable by a constant changes the truth of the consequence.
Remark 17. Reading a free set variable as a constant does not preserve
global consequence: the same Γ ⊨ φ is true on the left and false on the right.
So Corollary 15 does not extend to patterns with free set variables.