const In : set set prop term iIn = In infix iIn 2000 2000 term Subq = \x:set.\y:set.!z:set.z iIn x -> z iIn y const real : set const mul_SNo : set set set term * = mul_SNo infix * 2291 2290 axiom real_mul_SNo: !x:set.x iIn real -> !y:set.y iIn real -> x * y iIn real const complex : set const Empty : set const CSNo_Re : set set const CSNo_Im : set set const SNo : set prop const mul_CSNo : set set set const ordsucc : set set lemma !x:set.x iIn complex -> x != Empty -> CSNo_Re x iIn real -> CSNo_Im x iIn real -> CSNo_Re x * CSNo_Re x iIn real -> SNo (CSNo_Re x * CSNo_Re x) -> CSNo_Im x * CSNo_Im x iIn real -> ?y:set.y iIn complex & mul_CSNo x y = ordsucc Empty var x:set hyp x iIn complex hyp x != Empty hyp CSNo_Re x iIn real hyp CSNo_Im x iIn real hyp CSNo_Re x * CSNo_Re x iIn real claim SNo (CSNo_Re x * CSNo_Re x) -> ?y:set.y iIn complex & mul_CSNo x y = ordsucc Empty