Theory Propositional_Resolution
section ‹Syntax of Propositional Clausal Logic›
text ‹We define the usual syntactic notions of clausal propositional logic.
The set of atoms may be arbitrary (even uncountable), but a well-founded total order is assumed
to be given.›
theory Propositional_Resolution
imports Main
begin
locale propositional_atoms =
fixes atom_ordering :: "('at × 'at) set"
assumes
atom_ordering_wf :"(wf atom_ordering)"
and atom_ordering_total:"(∀x y. (x ≠ y ⟶ ((x,y) ∈ atom_ordering ∨ (y,x) ∈ atom_ordering)))"
and atom_ordering_trans: "∀x y z. (x,y) ∈ atom_ordering ⟶ (y,z) ∈ atom_ordering
⟶ (x,z) ∈ atom_ordering"
and atom_ordering_irrefl: "∀x y. (x,y) ∈ atom_ordering ⟶ (y,x) ∉ atom_ordering"
begin
text ‹Literals are defined as usual and clauses and formulas are considered as sets.
Clause sets are not assumed to be finite (so that the results can
be applied to sets of clauses obtained by grounding first-order clauses).›