Theory CNF_Sema

theory CNF_Sema
imports CNF
begin

(* 'a ⇒ bool is a valuation, but I do not want to include Sema just for that… *)
primrec lit_semantics :: "('a  bool)  'a literal  bool" where
"lit_semantics 𝒜 (k+) = 𝒜 k" |
"lit_semantics 𝒜 (k¯) = (¬𝒜 k)"
case_of_simps lit_semantics_cases: lit_semantics.simps
definition clause_semantics where
  "clause_semantics 𝒜 C  L  C. lit_semantics 𝒜 L"
definition cnf_semantics where
  "cnf_semantics 𝒜 S  C  S. clause_semantics 𝒜 C"


end