Propositional assignments #
A (total) assignment of truth values to propositional variables.
Equations
- Trestle.Model.PropAssignment ν = (ν → Bool)
Instances For
Equations
instance
Trestle.Model.PropAssignment.instDecidableEqOfFintype
{V : Type u_1}
[DecidableEq V]
[Fintype V]
:
Equations
instance
Trestle.Model.PropAssignment.instFintypeOfDecidableEq
{V : Type u_1}
[DecidableEq V]
[Fintype V]
:
Equations
theorem
Trestle.Model.PropAssignment.ext
{ν : Type u_1}
(v1 v2 : PropAssignment ν)
(h : ∀ (x : ν), v1 x = v2 x)
:
def
Trestle.Model.PropAssignment.set
{ν : Type u_1}
[DecidableEq ν]
(τ : PropAssignment ν)
(x : ν)
(v : Bool)
:
Instances For
@[simp]
theorem
Trestle.Model.PropAssignment.set_get
{ν : Type u_1}
[DecidableEq ν]
(τ : PropAssignment ν)
(x : ν)
(v : Bool)
:
@[simp]
theorem
Trestle.Model.PropAssignment.set_get_of_ne
{ν : Type u_1}
[DecidableEq ν]
{x y : ν}
(τ : PropAssignment ν)
(v : Bool)
:
@[simp]
theorem
Trestle.Model.PropAssignment.set_set
{ν : Type u_1}
[DecidableEq ν]
(τ : PropAssignment ν)
(x : ν)
(v v' : Bool)
:
@[simp]
theorem
Trestle.Model.PropAssignment.set_same
{ν : Type u_1}
[DecidableEq ν]
(τ : PropAssignment ν)
(x : ν)
:
theorem
Trestle.Model.PropAssignment.set_comm
{ν : Type u_1}
[DecidableEq ν]
(τ : PropAssignment ν)
(x₁ : ν)
(b₁ : Bool)
(x₂ : ν)
(b₂ : Bool)
(h : x₁ ≠ x₂)
:
def
Trestle.Model.PropAssignment.setMany
{ν : Type u_1}
[DecidableEq ν]
(τ : PropAssignment ν)
(xs : Finset ν)
(τ' : PropAssignment ν)
:
Assignment which agrees with τ' on xs but τ everywhere else.
Instances For
@[simp]
theorem
Trestle.Model.PropAssignment.setMany_mem
{ν : Type u_1}
[DecidableEq ν]
(τ : PropAssignment ν)
{v : ν}
(xs : Finset ν)
(τ' : PropAssignment ν)
(h : v ∈ xs)
:
@[simp]
theorem
Trestle.Model.PropAssignment.setMany_not_mem
{ν : Type u_1}
[DecidableEq ν]
(τ : PropAssignment ν)
{v : ν}
(xs : Finset ν)
(τ' : PropAssignment ν)
(h : v ∉ xs)
:
@[simp]
theorem
Trestle.Model.PropAssignment.setMany_same
{ν : Type u_1}
[DecidableEq ν]
(τ : PropAssignment ν)
(xs : Finset ν)
:
@[simp]
theorem
Trestle.Model.PropAssignment.setMany_setMany
{ν : Type u_1}
[DecidableEq ν]
(τ : PropAssignment ν)
(xs₁ : Finset ν)
(τ₁ : PropAssignment ν)
(xs₂ : Finset ν)
(τ₂ : PropAssignment ν)
:
theorem
Trestle.Model.PropAssignment.setMany_union
{ν : Type u_1}
[DecidableEq ν]
(τ : PropAssignment ν)
(xs₁ xs₂ : Finset ν)
(τ' : PropAssignment ν)
:
@[simp]
theorem
Trestle.Model.PropAssignment.setMany_singleton
{ν : Type u_1}
[DecidableEq ν]
(τ : PropAssignment ν)
(v : ν)
(τ' : PropAssignment ν)
:
theorem
Trestle.Model.PropAssignment.set_setMany_comm
{ν : Type u_1}
[DecidableEq ν]
(τ : PropAssignment ν)
(xs : Finset ν)
(τ' : PropAssignment ν)
(v : ν)
(b : Bool)
(h : v ∉ xs)
:
Equations
- Trestle.Model.PropAssignment.agreeOn X σ₁ σ₂ = ∀ x ∈ X, σ₁ x = σ₂ x
Instances For
theorem
Trestle.Model.PropAssignment.agreeOn_refl
{ν : Type u_1}
(X : Set ν)
(σ : PropAssignment ν)
:
agreeOn X σ σ
theorem
Trestle.Model.PropAssignment.agreeOn.symm
{α✝ : Type u_1}
{X : Set α✝}
{σ₁ σ₂ : PropAssignment α✝}
:
theorem
Trestle.Model.PropAssignment.agreeOn.trans
{α✝ : Type u_1}
{X : Set α✝}
{σ₁ σ₂ σ₃ : PropAssignment α✝}
:
theorem
Trestle.Model.PropAssignment.agreeOn.subset
{α✝ : Type u_1}
{X Y : Set α✝}
{σ₁ σ₂ : PropAssignment α✝}
:
theorem
Trestle.Model.PropAssignment.agreeOn_set_of_not_mem
{ν : Type u_1}
[DecidableEq ν]
{x : ν}
{X : Set ν}
(σ : PropAssignment ν)
(v : Bool)
:
theorem
Trestle.Model.PropAssignment.agreeOn_setMany
{ν : Type u_1}
(τ : PropAssignment ν)
[DecidableEq ν]
(xs : Finset ν)
(τ' : PropAssignment ν)
:
theorem
Trestle.Model.PropAssignment.agreeOn_setMany_of_disjoint
{ν : Type u_1}
(τ : PropAssignment ν)
[DecidableEq ν]
(xs : Set ν)
(xs' : Finset ν)
(τ' : PropAssignment ν)
(h : Disjoint xs ↑xs')
:
theorem
Trestle.Model.PropAssignment.agreeOn_setMany_compl
{ν : Type u_1}
(τ : PropAssignment ν)
[DecidableEq ν]
(xs : Finset ν)
(τ' : PropAssignment ν)
:
@[reducible, inline]
abbrev
Trestle.Model.PropAssignment.map
{ν₂ : Type u_1}
{ν₁ : Type u_2}
(f : ν₂ → ν₁)
(τ : PropAssignment ν₁)
:
Equations
- Trestle.Model.PropAssignment.map f τ = τ ∘ f
Instances For
@[simp]
theorem
Trestle.Model.PropAssignment.get_map
{ν₂✝ : Type u_1}
{ν✝ : Type u_2}
{f : ν₂✝ → ν✝}
{τ : PropAssignment ν✝}
{v : ν₂✝}
:
@[simp]
theorem
Trestle.Model.PropAssignment.map_set
{ν₁ : Type u_1}
{ν₂ : Type u_2}
{v : ν₂}
{b : Bool}
[DecidableEq ν₁]
[DecidableEq ν₂]
(f : ν₂ → ν₁)
(τ : PropAssignment ν₁)
(finj : Function.Injective f)
:
theorem
Trestle.Model.PropAssignment.map_eq_map
{ν : Type u_1}
{ν₁ : Type u_2}
{ν₂ : Type u_3}
(f : ν → ν₁)
(τ : PropAssignment ν₁)
(f' : ν → ν₂)
(τ' : PropAssignment ν₂)
:
def
Trestle.Model.PropAssignment.pmap
{ν₂ : Type u_1}
{ν₁ : Type u_2}
{vs : Set ν₂}
[DecidablePred fun (x : ν₂) => x ∈ vs]
[DecidableEq ν₂]
(f : ↑vs → ν₁)
(τ : PropAssignment ν₁)
:
Instances For
def
Trestle.Model.PropAssignment.exists_preimage
{ν₂ : Type u_1}
{ν₁ : Type u_2}
[DecidableEq ν₂]
(f : ν₁ ↪ ν₂)
(τ : PropAssignment ν₁)
:
∃ (σ : PropAssignment ν₂), τ = map (⇑f) σ
Equations
- ⋯ = ⋯