Theory Axioms_Complement
section ‹Axioms of complements›
theory Axioms_Complement
imports Laws
begin
typedecl ('a, 'b) complement_domain
instance complement_domain :: (domain, domain) domain..
typedecl some_domain
instance some_domain :: domain..
axiomatization where
complement_exists: ‹register F ⟹ ∃G :: ('a, 'b) complement_domain update ⇒ 'b update. compatible F G ∧ iso_register (F;G)› for F :: ‹'a::domain update ⇒ 'b::domain update›
axiomatization where complement_unique: ‹compatible F G ⟹ iso_register (F;G) ⟹ compatible F H ⟹ iso_register (F;H)
⟹ equivalent_registers G H›
for F :: ‹'a::domain update ⇒ 'b::domain update› and G :: ‹'g::domain update ⇒ 'b update› and H :: ‹'h::domain update ⇒ 'b update›
end