(def-theorem group-to-field-additive-group-obl-1
"forall(x:kk,o_kk +_kk x=x)"
lemma
(theory fields)
(proof
(
(apply-macete-with-minor-premises commutative-law-for-addition-for-fields)
(apply-macete-with-minor-premises additive-identity-for-fields)
)))
(def-theorem group-to-field-additive-group-obl-2
"forall(x:kk, -_kk x +_kk x=o_kk)"
lemma
(theory fields)
(proof
(
(apply-macete-with-minor-premises commutative-law-for-addition-for-fields)
(apply-macete-with-minor-premises additive-inverse-for-fields)
)))
(def-theorem group-to-field-multiplicative-group-obl-1
"not(i_kk=o_kk)"
lemma
(theory fields)
(proof
(
(force-substitution "i_kk=o_kk" "o_kk=i_kk" (0))
(apply-macete-with-minor-premises field-zero-is-not-field-one)
simplify
)))
(def-theorem group-to-field-multiplicative-group-obl-2
"forall(x_1,x_0:kk, not(x_0=o_kk) implies x_1=o_kk or not(x_1 *_kk x_0=o_kk))"
lemma
(theory fields)
(proof
(
direct-and-antecedent-inference-strategy
(apply-macete-with-minor-premises non-o_kk-is-closed-under-*_kk)
direct-inference
)))
(def-theorem group-to-field-multiplicative-group-obl-3
"forall(x:kk, not(x=o_kk) implies if(not(i_kk=o_kk), x, ?kk)=x)"
lemma
(theory fields)
(proof
(
(raise-conditional (0))
direct-and-antecedent-inference-strategy
)))
(def-theorem group-to-field-multiplicative-group-obl-4
"forall(x:kk, not(x=o_kk) implies if(not(inv(x)=o_kk), inv(x) *_kk x, ?kk)=i_kk)"
lemma
(theory fields)
(proof
(
(apply-macete-with-minor-premises commutative-law-for-multiplication-for-fields)
(apply-macete-with-minor-premises multiplicative-inverse-for-fields)
(raise-conditional (0))
direct-and-antecedent-inference-strategy
(contrapose "with(p:prop,not(not(p)))")
(apply-macete-with-minor-premises non-o_kk-is-closed-under-inv)
)))
(def-theorem group-to-field-multiplicative-group-obl-5
"forall(x,y,z:kk,
not(x=o_kk) and not(y=o_kk) and not(z=o_kk)
implies
if(not(y *_kk x=o_kk), z *_kk y *_kk x, ?kk)
=if(not(z *_kk y=o_kk), z *_kk y *_kk x, ?kk))"
lemma
(theory fields)
(proof
(
(raise-conditional (0))
(raise-conditional (0))
(raise-conditional (0))
direct-and-antecedent-inference-strategy
(contrapose "with(p:prop,not(not(p)));")
(apply-macete-with-minor-premises non-o_kk-is-closed-under-*_kk)
direct-inference
(contrapose "with(p:prop,not(not(p)));")
(apply-macete-with-minor-premises non-o_kk-is-closed-under-*_kk)
direct-inference
(contrapose "with(x,y:kk,not(not(y*x=o_kk)));")
(apply-macete-with-minor-premises non-o_kk-is-closed-under-*_kk)
direct-inference
)))
(def-translation group-to-field-additive-group
(source groups)
(target fields)
(fixed-theories h-o-real-arithmetic)
(sort-pairs
(gg kk))
(constant-pairs
(e o_kk)
(mul +_kk)
(inv -_kk)))
(def-translation group-to-field-multiplicative-group
(source groups)
(target fields)
(fixed-theories h-o-real-arithmetic)
(sort-pairs
(gg (pred "lambda(z:kk,not(z=o_kk))")))
(constant-pairs
(e i_kk)
(mul "lambda(x,y:kk,if(not(x=o_kk) and not(y=o_kk), x *_kk y, ?kk))")
(inv "lambda(x:kk,if(not(x=o_kk), inv(x), ?kk))"))
(theory-interpretation-check using-simplification))