(def-language field-language
(base-types kk)
(constants
(o_kk kk)
(i_kk kk)
(-_kk (kk kk))
(+_kk (kk kk kk))
(*_kk (kk kk kk))
(inv (kk kk))))
(def-theory fields
(component-theories h-o-real-arithmetic)
(language field-language)
(distinct-constants (i_kk o_kk))
(axioms
(associative-law-for-multiplication-for-fields
"forall(z,y,x:kk,(x *_kk y) *_kk z=x *_kk (y *_kk z))")
(left-distributive-law-for-fields
"forall(z,y,x:kk,x *_kk (y +_kk z)=x *_kk y +_kk x *_kk z)")
(multiplicative-identity-for-fields
"forall(x:kk,i_kk *_kk x = x)" rewrite)
(additive-identity-for-fields
"forall(x:kk,x +_kk o_kk = x)" rewrite)
(additive-inverse-for-fields
"forall(x:kk,x +_kk (-_kk x) = o_kk)" rewrite)
(commutative-law-for-multiplication-for-fields
"forall(y,x:kk,x *_kk y=y *_kk x)")
(associative-law-for-addition-for-fields
"forall(z,y,x:kk,(x +_kk y) +_kk z=x +_kk (y +_kk z))")
(commutative-law-for-addition-for-fields
"forall(y,x:kk,x +_kk y=y +_kk x)")
(multiplicative-inverse-for-fields
"forall(x:kk,not(x = o_kk) implies x *_kk inv(x)=i_kk)" )))
(def-theorem field-zero-is-not-field-one
"not(o_kk = i_kk)"
(theory fields)
(proof
(
simplify
)))
(def-theorem ()
"total_q(+_kk,[kk,kk,kk])"
(theory fields)
(usages d-r-convergence)
(proof
(
insistent-direct-inference
(assume-theorem commutative-law-for-addition-for-fields)
)))
(def-theorem ()
"total_q(*_kk,[kk,kk,kk])"
(theory fields)
(usages d-r-convergence)
(proof
(
insistent-direct-inference
(assume-theorem commutative-law-for-multiplication-for-fields)
)))
(def-theorem ()
"total_q(-_kk,[kk,kk])"
(theory fields)
(usages d-r-convergence)
(proof
(
insistent-direct-inference
(assume-theorem additive-inverse-for-fields)
)))
(def-translation fields-to-rr
(source fields)
(target h-o-real-arithmetic)
(fixed-theories h-o-real-arithmetic)
(sort-pairs
(kk rr))
(constant-pairs
(o_kk 0)
(i_kk 1)
(-_kk -)
(+_kk +)
(*_kk *)
(inv "lambda(x:rr,1/x)"))
(theory-interpretation-check using-simplification))