体の公理

乗法逆元の存在の公理におけるx=0の違和感?をなくした公理系を考えました.そのココロは
(x=0|x*y=1)->(x*(x*y)=x)はOK,整域なら逆もOK
です.

Axioms:

(all x all y all z (x + y) + z = x + (y + z)).
(all x all y x + y = y + x).
(all x x + 0 = x).
(all x exists y x + y = 0).
(all x all y all z (x + y) * z = (x * z) + (y * z)).
(all x all y all z (x * y) * z = x * (y * z)).
(all x all y x * y = y * x).
(all x x * 1 = x).
(all x exists y x * (x * y) = x).
(all x all y (x * y = 0 -> x = 0 | y = 0)).
0 != 1.

Goal:

(all x exists y (x = 0 | x * y = 1)).

Proof:

============================== prooftrans ============================
Prover9 (64) version 2009-02A, February 2009.
Process 12008 was started by k on debian,
Sat May 17 11:10:43 2014
The command was "/usr/bin/prover9".
============================== end of head ===========================

============================== end of input ==========================

============================== PROOF =================================

% -------- Comments from original proof --------
% Proof 1 at 1.55 (+ 0.23) seconds.
% Length of proof is 76.
% Level of proof is 23.
% Maximum clause weight is 17.
% Given clauses 650.


1 (all x all y all z (x + y) + z = x + (y + z)) # label(non_clause).  [assumption].
2 (all x all y x + y = y + x) # label(non_clause).  [assumption].
3 (all x x + 0 = x) # label(non_clause).  [assumption].
4 (all x exists y x + y = 0) # label(non_clause).  [assumption].
5 (all x all y all z (x + y) * z = (x * z) + (y * z)) # label(non_clause).  [assumption].
6 (all x all y all z (x * y) * z = x * (y * z)) # label(non_clause).  [assumption].
7 (all x all y x * y = y * x) # label(non_clause).  [assumption].
8 (all x x * 1 = x) # label(non_clause).  [assumption].
9 (all x exists y x * (x * y) = x) # label(non_clause).  [assumption].
10 (all x all y (x * y = 0 -> x = 0 | y = 0)) # label(non_clause).  [assumption].
11 (all x exists y (x = 0 | x * y = 1)) # label(non_clause) # label(goal).  [goal].
12 (x + y) + z = x + (y + z).  [clausify(1)].
13 x + y = y + x.  [clausify(2)].
14 x + 0 = x.  [clausify(3)].
15 x + f1(x) = 0.  [clausify(4)].
16 (x + y) * z = (x * z) + (y * z).  [clausify(5)].
17 (x * y) * z = x * (y * z).  [clausify(6)].
18 x * y = y * x.  [clausify(7)].
19 x * 1 = x.  [clausify(8)].
20 x * (x * f2(x)) = x.  [clausify(9)].
21 x * y != 0 | 0 = x | 0 = y.  [clausify(10)].
24 0 != c1.  [deny(11)].
25 c1 != 0.  [copy(24),flip(a)].
26 c1 * x != 1.  [deny(11)].
28 x + (y + z) = y + (x + z).  [para(13(a,1),12(a,1,1)),rewrite([12(2)])].
31 0 + x = x.  [para(14(a,1),13(a,1)),flip(a)].
32 x + (f1(x) + y) = y.  [para(15(a,1),12(a,1,1)),rewrite([31(2)]),flip(a)].
34 (x * y) + (0 * y) = x * y.  [para(14(a,1),16(a,1,1)),flip(a)].
35 (x * y) + (f1(x) * y) = 0 * y.  [para(15(a,1),16(a,1,1)),flip(a)].
36 x * (y + z) = (y * x) + (z * x).  [para(18(a,1),16(a,1))].
37 x * (y * z) = y * (x * z).  [para(18(a,1),17(a,1,1)),rewrite([17(2)])].
41 1 * x = x.  [para(19(a,1),18(a,1)),flip(a)].
45 x * (x * (f2(x) * y)) = x * y.  [para(20(a,1),17(a,1,1)),rewrite([17(4)]),flip(a)].
55 x + (y + f1(x)) = y.  [para(15(a,1),28(a,1,2)),rewrite([14(2)]),flip(a)].
66 f1(f1(x)) = x.  [para(15(a,1),32(a,1,2)),rewrite([14(2)]),flip(a)].
107 x + (0 * x) = x.  [para(41(a,1),34(a,1,1)),rewrite([41(5)])].
122 0 * f1(x) = 0.  [para(107(a,1),32(a,1,2)),rewrite([15(2)]),flip(a)].
127 0 * x = 0.  [para(66(a,1),122(a,1,2))].
129 (x * y) + (f1(x) * y) = 0.  [back_rewrite(35),rewrite([127(6)])].
146 x * (1 + y) = x + (y * x).  [para(41(a,1),36(a,2,1))].
180 x + (f1(1) * x) = 0.  [para(41(a,1),129(a,1,1))].
189 f1(1) * f1(x) = x.  [para(180(a,1),32(a,1,2)),rewrite([14(2)]),flip(a)].
212 f1(x) * f1(1) = x.  [para(189(a,1),18(a,1)),flip(a)].
214 f1(1) * x = f1(x).  [para(66(a,1),189(a,1,2))].
221 x * f1(1) = f1(x).  [para(66(a,1),212(a,1,1))].
222 f1(x) * y = f1(x * y).  [para(214(a,1),17(a,1,1)),rewrite([214(6)])].
223 x * f1(y) = f1(x * y).  [para(214(a,1),17(a,2,2)),rewrite([221(3),222(2)]),flip(a)].
278 x * (x * f2(f1(x))) = f1(x).  [para(222(a,1),20(a,1,2)),rewrite([223(6),37(5),222(4),223(5),66(6)])].
364 x * (x * (f2(f1(x)) * y)) = f1(x * y).  [para(278(a,1),17(a,1,1)),rewrite([222(2),17(6)]),flip(a)].
386 x * (1 + y) = x + (x * y).  [para(18(a,1),146(a,2,2))].
453 x + (x * y) != 0 | 0 = x | 1 + y = 0.  [para(386(a,1),21(a,1)),flip(c)].
474 x * (x * (y * f2(x))) = x * y.  [para(18(a,1),45(a,1,2,2))].
475 x * (f2(x) * f2(f2(x))) = x.  [para(20(a,1),45(a,1,2,2)),rewrite([20(3)]),flip(a)].
499 x * f2(f2(x)) = x * x.  [para(475(a,1),45(a,1,2)),flip(a)].
505 x * (y * f2(f2(x))) = y * (x * x).  [para(499(a,1),37(a,1,2)),flip(a)].
506 f1(x * f2(f2(f1(x)))) = x * x.  [para(499(a,1),222(a,1)),rewrite([223(3),18(2),223(2),66(3)]),flip(a)].
507 x * f2(f2(f2(x))) = x * f2(x).  [para(499(a,1),45(a,1,2,2)),rewrite([474(5)]),flip(a)].
515 x * f2(f2(f1(x))) = f1(x * x).  [para(506(a,1),66(a,1,1)),flip(a)].
565 f1(x * f2(f2(f2(f1(x))))) = f1(x * f2(f1(x))).  [para(507(a,1),222(a,1)),rewrite([222(4)]),flip(a)].
566 x * f2(f2(f2(f2(x)))) = x * x.  [para(507(a,1),45(a,1,2,2)),rewrite([505(5),18(3),17(3),20(3)]),flip(a)].
568 x * (f2(f2(f1(x))) * y) = f1(x * (x * y)).  [para(515(a,1),17(a,1,1)),rewrite([222(3),17(2)]),flip(a)].
573 x * (y * f2(f2(f1(x)))) = f1(y * (x * x)).  [para(515(a,1),37(a,1,2)),rewrite([223(3)]),flip(a)].
634 x * f2(f2(f2(f2(f2(x))))) = x * f2(x).  [para(566(a,1),45(a,1,2,2)),rewrite([474(5)]),flip(a)].
1613 f1(x * f2(f2(f2(f2(f2(f1(x))))))) = f1(x * f2(f1(x))).  [para(634(a,1),222(a,1)),rewrite([222(4)]),flip(a)].
2435 x * f2(f1(x)) = f1(x * f2(x)).  [para(364(a,1),474(a,1)),flip(a)].
2472 f1(x * f2(f2(f2(f2(f2(f1(x))))))) = x * f2(x).  [back_rewrite(1613),rewrite([2435(11),66(12)])].
2482 f1(x * f2(f2(f2(f1(x))))) = x * f2(x).  [back_rewrite(565),rewrite([2435(9),66(10)])].
2513 x * f2(f2(f2(f1(x)))) = f1(x * f2(x)).  [para(2482(a,1),66(a,1,1)),flip(a)].
2521 x * (y * f2(f2(f2(f1(x))))) = f1(y * (x * f2(x))).  [para(2513(a,1),37(a,1,2)),rewrite([223(4)]),flip(a)].
4673 f1(x * (x * f2(f2(f2(f2(f2(f1(x)))))))) = x.  [para(507(a,1),568(a,1,2)),rewrite([2521(9),18(6),17(6),573(6),18(3),17(3),20(3),66(2)]),flip(a)].
4783 x * (x * f2(f2(f2(f2(f2(f1(x))))))) = f1(x).  [para(4673(a,1),66(a,1,1)),flip(a)].
4838 0 = x | 1 + (x * f2(f2(f2(f2(f2(f1(x))))))) = 0.  [para(4783(a,1),453(a,1,2)),rewrite([15(2)]),xx(a)].
9435 x * f2(f2(f2(f2(f2(f1(x)))))) = f1(x * f2(x)).  [para(2472(a,1),66(a,1,1)),flip(a)].
9440 0 = x | 1 + f1(x * f2(x)) = 0.  [back_rewrite(4838),rewrite([9435(10)])].
9453 0 = x | x * f2(x) = 1.  [para(9440(b,1),55(a,1,2)),rewrite([13(6),31(6)])].
9558 $F.  [resolve(9453,b,26,a),flip(a),unit_del(a,25)].

============================== end of proof ==========================