Joint Consistency over Disjoint Vocabularies #
If a theory over V and a theory over W are each satisfiable and V and W
are disjoint, their union is satisfiable.
Common Ground's consequence system is abstract and has no vocabularies, so
this property cannot be stated there. Here it is a theorem about the
propositional instance. The construction takes one valuation on V and the
other outside V.
def
SE.CommonGround.Logic.splice
{Atom : Type u}
(V : Vocabulary Atom)
(v₁ v₂ : Valuation Atom)
:
Valuation Atom
The valuation that agrees with v₁ on V and with v₂ outside V.
Instances For
theorem
SE.CommonGround.Logic.splice_iff_of_mem
{Atom : Type u}
{V : Vocabulary Atom}
{v₁ v₂ : Valuation Atom}
{a : Atom}
(ha : a ∈ V)
:
On V, the spliced valuation agrees with v₁.
theorem
SE.CommonGround.Logic.splice_iff_of_not_mem
{Atom : Type u}
{V : Vocabulary Atom}
{v₁ v₂ : Valuation Atom}
{a : Atom}
(ha : ¬a ∈ V)
:
Outside V, the spliced valuation agrees with v₂.
theorem
SE.CommonGround.Logic.satisfiable_union_of_disjoint
{Atom : Type u}
{V W : Vocabulary Atom}
(hdisjoint : VocabularyDisjoint V W)
{T U : MathlibMini.Set (Formula Atom)}
(hT : TheoryIn V T)
(hU : TheoryIn W U)
(hTsat : ∃ (v : Valuation Atom), Satisfies v T)
(hUsat : ∃ (v : Valuation Atom), Satisfies v U)
:
Satisfiable theories over disjoint vocabularies have a satisfiable union.