:: GATE_5 semantic presentation
Lemma1:
for b1, b2 being set holds
( not ( $ XOR3 b1,b2,{} & not $ XOR2 b1,b2 ) & not ( $ XOR2 b1,b2 & not $ XOR3 b1,b2,{} ) & not ( $ XOR3 b1,{} ,b2 & not $ XOR2 b1,b2 ) & not ( $ XOR2 b1,b2 & not $ XOR3 b1,{} ,b2 ) & not ( $ XOR3 {} ,b1,b2 & not $ XOR2 b1,b2 ) & not ( $ XOR2 b1,b2 & not $ XOR3 {} ,b1,b2 ) )
Lemma2:
for b1, b2 being set holds
( not ( $ MAJ3 b1,b2,{} & not $ AND2 b1,b2 ) & not ( $ AND2 b1,b2 & not $ MAJ3 b1,b2,{} ) & not ( $ MAJ3 b1,{} ,b2 & not $ AND2 b1,b2 ) & not ( $ AND2 b1,b2 & not $ MAJ3 b1,{} ,b2 ) & not ( $ MAJ3 {} ,b1,b2 & not $ AND2 b1,b2 ) & not ( $ AND2 b1,b2 & not $ MAJ3 {} ,b1,b2 ) )
definition
let c
1, c
2, c
3, c
4 be
set ;
func MULT210 c
2,c
4,c
1,c
3 -> set equals :: GATE_5:def 1
AND2 a
1,a
3;
correctness
coherence
AND2 c1,c3 is set ;
;
func MULT211 c
2,c
4,c
1,c
3 -> set equals :: GATE_5:def 2
ADD1 (AND2 a2,a3),
(AND2 a1,a4),
{} ;
correctness
coherence
ADD1 (AND2 c2,c3),(AND2 c1,c4),{} is set ;
;
func MULT212 c
2,c
4,c
1,c
3 -> set equals :: GATE_5:def 3
ADD2 {} ,
(AND2 a2,a4),
(AND2 a2,a3),
(AND2 a1,a4),
{} ;
correctness
coherence
ADD2 {} ,(AND2 c2,c4),(AND2 c2,c3),(AND2 c1,c4),{} is set ;
;
func MULT213 c
2,c
4,c
1,c
3 -> set equals :: GATE_5:def 4
CARR2 {} ,
(AND2 a2,a4),
(AND2 a2,a3),
(AND2 a1,a4),
{} ;
correctness
coherence
CARR2 {} ,(AND2 c2,c4),(AND2 c2,c3),(AND2 c1,c4),{} is set ;
;
end;
:: deftheorem Def1 defines MULT210 GATE_5:def 1 :
:: deftheorem Def2 defines MULT211 GATE_5:def 2 :
for b
1, b
2, b
3, b
4 being
set holds
MULT211 b
2,b
4,b
1,b
3 = ADD1 (AND2 b2,b3),
(AND2 b1,b4),
{} ;
:: deftheorem Def3 defines MULT212 GATE_5:def 3 :
for b
1, b
2, b
3, b
4 being
set holds
MULT212 b
2,b
4,b
1,b
3 = ADD2 {} ,
(AND2 b2,b4),
(AND2 b2,b3),
(AND2 b1,b4),
{} ;
:: deftheorem Def4 defines MULT213 GATE_5:def 4 :
for b
1, b
2, b
3, b
4 being
set holds
MULT213 b
2,b
4,b
1,b
3 = CARR2 {} ,
(AND2 b2,b4),
(AND2 b2,b3),
(AND2 b1,b4),
{} ;
theorem Th1: :: GATE_5:1
for b
1, b
2, b
3, b
4, b
5, b
6, b
7, b
8, b
9, b
10, b
11, b
12, b
13 being
set holds
not ( not (
$ b
9 & not
$ AND2 b
1,b
3 ) & not (
$ AND2 b
1,b
3 & not
$ b
9 ) & not (
$ b
10 & not
$ XOR3 (AND2 b2,b3),
(AND2 b1,b4),
{} ) & not (
$ XOR3 (AND2 b2,b3),
(AND2 b1,b4),
{} & not
$ b
10 ) & not (
$ b
11 & not
$ MAJ3 (AND2 b2,b3),
(AND2 b1,b4),
{} ) & not (
$ MAJ3 (AND2 b2,b3),
(AND2 b1,b4),
{} & not
$ b
11 ) & not (
$ b
12 & not
$ XOR3 (AND2 b2,b4),
{} ,b
11 ) & not (
$ XOR3 (AND2 b2,b4),
{} ,b
11 & not
$ b
12 ) & not (
$ b
13 & not
$ MAJ3 (AND2 b2,b4),
{} ,b
11 ) & not (
$ MAJ3 (AND2 b2,b4),
{} ,b
11 & not
$ b
13 ) & not (
$ b
5 & not
$ b
9 ) & not (
$ b
9 & not
$ b
5 ) & not (
$ b
6 & not
$ b
10 ) & not (
$ b
10 & not
$ b
6 ) & not (
$ b
7 & not
$ b
12 ) & not (
$ b
12 & not
$ b
7 ) & not (
$ b
8 & not
$ b
13 ) & not (
$ b
13 & not
$ b
8 ) & not ( not (
$ b
5 & not
$ MULT210 b
2,b
4,b
1,b
3 ) & not (
$ MULT210 b
2,b
4,b
1,b
3 & not
$ b
5 ) & not (
$ b
6 & not
$ MULT211 b
2,b
4,b
1,b
3 ) & not (
$ MULT211 b
2,b
4,b
1,b
3 & not
$ b
6 ) & not (
$ b
7 & not
$ MULT212 b
2,b
4,b
1,b
3 ) & not (
$ MULT212 b
2,b
4,b
1,b
3 & not
$ b
7 ) & not (
$ b
8 & not
$ MULT213 b
2,b
4,b
1,b
3 ) & not (
$ MULT213 b
2,b
4,b
1,b
3 & not
$ b
8 ) ) )
definition
let c
1, c
2, c
3, c
4, c
5 be
set ;
func MULT310 c
3,c
2,c
5,c
1,c
4 -> set equals :: GATE_5:def 5
AND2 a
1,a
4;
correctness
coherence
AND2 c1,c4 is set ;
;
func MULT311 c
3,c
2,c
5,c
1,c
4 -> set equals :: GATE_5:def 6
ADD1 (AND2 a2,a4),
(AND2 a1,a5),
{} ;
correctness
coherence
ADD1 (AND2 c2,c4),(AND2 c1,c5),{} is set ;
;
func MULT312 c
3,c
2,c
5,c
1,c
4 -> set equals :: GATE_5:def 7
ADD2 (AND2 a3,a4),
(AND2 a2,a5),
(AND2 a2,a4),
(AND2 a1,a5),
{} ;
correctness
coherence
ADD2 (AND2 c3,c4),(AND2 c2,c5),(AND2 c2,c4),(AND2 c1,c5),{} is set ;
;
func MULT313 c
3,c
2,c
5,c
1,c
4 -> set equals :: GATE_5:def 8
ADD3 {} ,
(AND2 a3,a5),
(AND2 a3,a4),
(AND2 a2,a5),
(AND2 a2,a4),
(AND2 a1,a5),
{} ;
correctness
coherence
ADD3 {} ,(AND2 c3,c5),(AND2 c3,c4),(AND2 c2,c5),(AND2 c2,c4),(AND2 c1,c5),{} is set ;
;
func MULT314 c
3,c
2,c
5,c
1,c
4 -> set equals :: GATE_5:def 9
CARR3 {} ,
(AND2 a3,a5),
(AND2 a3,a4),
(AND2 a2,a5),
(AND2 a2,a4),
(AND2 a1,a5),
{} ;
correctness
coherence
CARR3 {} ,(AND2 c3,c5),(AND2 c3,c4),(AND2 c2,c5),(AND2 c2,c4),(AND2 c1,c5),{} is set ;
;
end;
:: deftheorem Def5 defines MULT310 GATE_5:def 5 :
for b
1, b
2, b
3, b
4, b
5 being
set holds
MULT310 b
3,b
2,b
5,b
1,b
4 = AND2 b
1,b
4;
:: deftheorem Def6 defines MULT311 GATE_5:def 6 :
for b
1, b
2, b
3, b
4, b
5 being
set holds
MULT311 b
3,b
2,b
5,b
1,b
4 = ADD1 (AND2 b2,b4),
(AND2 b1,b5),
{} ;
:: deftheorem Def7 defines MULT312 GATE_5:def 7 :
for b
1, b
2, b
3, b
4, b
5 being
set holds
MULT312 b
3,b
2,b
5,b
1,b
4 = ADD2 (AND2 b3,b4),
(AND2 b2,b5),
(AND2 b2,b4),
(AND2 b1,b5),
{} ;
:: deftheorem Def8 defines MULT313 GATE_5:def 8 :
for b
1, b
2, b
3, b
4, b
5 being
set holds
MULT313 b
3,b
2,b
5,b
1,b
4 = ADD3 {} ,
(AND2 b3,b5),
(AND2 b3,b4),
(AND2 b2,b5),
(AND2 b2,b4),
(AND2 b1,b5),
{} ;
:: deftheorem Def9 defines MULT314 GATE_5:def 9 :
for b
1, b
2, b
3, b
4, b
5 being
set holds
MULT314 b
3,b
2,b
5,b
1,b
4 = CARR3 {} ,
(AND2 b3,b5),
(AND2 b3,b4),
(AND2 b2,b5),
(AND2 b2,b4),
(AND2 b1,b5),
{} ;
definition
let c
1, c
2, c
3, c
4, c
5, c
6 be
set ;
func MULT321 c
3,c
6,c
2,c
5,c
1,c
4 -> set equals :: GATE_5:def 10
ADD1 (MULT312 a3,a2,a5,a1,a4),
(AND2 a1,a6),
{} ;
correctness
coherence
ADD1 (MULT312 c3,c2,c5,c1,c4),(AND2 c1,c6),{} is set ;
;
func MULT322 c
3,c
6,c
2,c
5,c
1,c
4 -> set equals :: GATE_5:def 11
ADD2 (MULT313 a3,a2,a5,a1,a4),
(AND2 a2,a6),
(MULT312 a3,a2,a5,a1,a4),
(AND2 a1,a6),
{} ;
correctness
coherence
ADD2 (MULT313 c3,c2,c5,c1,c4),(AND2 c2,c6),(MULT312 c3,c2,c5,c1,c4),(AND2 c1,c6),{} is set ;
;
func MULT323 c
3,c
6,c
2,c
5,c
1,c
4 -> set equals :: GATE_5:def 12
ADD3 (MULT314 a3,a2,a5,a1,a4),
(AND2 a3,a6),
(MULT313 a3,a2,a5,a1,a4),
(AND2 a2,a6),
(MULT312 a3,a2,a5,a1,a4),
(AND2 a1,a6),
{} ;
correctness
coherence
ADD3 (MULT314 c3,c2,c5,c1,c4),(AND2 c3,c6),(MULT313 c3,c2,c5,c1,c4),(AND2 c2,c6),(MULT312 c3,c2,c5,c1,c4),(AND2 c1,c6),{} is set ;
;
func MULT324 c
3,c
6,c
2,c
5,c
1,c
4 -> set equals :: GATE_5:def 13
CARR3 (MULT314 a3,a2,a5,a1,a4),
(AND2 a3,a6),
(MULT313 a3,a2,a5,a1,a4),
(AND2 a2,a6),
(MULT312 a3,a2,a5,a1,a4),
(AND2 a1,a6),
{} ;
correctness
coherence
CARR3 (MULT314 c3,c2,c5,c1,c4),(AND2 c3,c6),(MULT313 c3,c2,c5,c1,c4),(AND2 c2,c6),(MULT312 c3,c2,c5,c1,c4),(AND2 c1,c6),{} is set ;
;
end;
:: deftheorem Def10 defines MULT321 GATE_5:def 10 :
for b
1, b
2, b
3, b
4, b
5, b
6 being
set holds
MULT321 b
3,b
6,b
2,b
5,b
1,b
4 = ADD1 (MULT312 b3,b2,b5,b1,b4),
(AND2 b1,b6),
{} ;
:: deftheorem Def11 defines MULT322 GATE_5:def 11 :
for b
1, b
2, b
3, b
4, b
5, b
6 being
set holds
MULT322 b
3,b
6,b
2,b
5,b
1,b
4 = ADD2 (MULT313 b3,b2,b5,b1,b4),
(AND2 b2,b6),
(MULT312 b3,b2,b5,b1,b4),
(AND2 b1,b6),
{} ;
:: deftheorem Def12 defines MULT323 GATE_5:def 12 :
for b
1, b
2, b
3, b
4, b
5, b
6 being
set holds
MULT323 b
3,b
6,b
2,b
5,b
1,b
4 = ADD3 (MULT314 b3,b2,b5,b1,b4),
(AND2 b3,b6),
(MULT313 b3,b2,b5,b1,b4),
(AND2 b2,b6),
(MULT312 b3,b2,b5,b1,b4),
(AND2 b1,b6),
{} ;
:: deftheorem Def13 defines MULT324 GATE_5:def 13 :
for b
1, b
2, b
3, b
4, b
5, b
6 being
set holds
MULT324 b
3,b
6,b
2,b
5,b
1,b
4 = CARR3 (MULT314 b3,b2,b5,b1,b4),
(AND2 b3,b6),
(MULT313 b3,b2,b5,b1,b4),
(AND2 b2,b6),
(MULT312 b3,b2,b5,b1,b4),
(AND2 b1,b6),
{} ;
theorem Th2: :: GATE_5:2
for b
1, b
2, b
3, b
4, b
5, b
6, b
7, b
8, b
9, b
10, b
11, b
12, b
13, b
14, b
15, b
16, b
17, b
18, b
19, b
20, b
21, b
22, b
23, b
24, b
25 being
set holds
not ( not (
$ b
13 & not
$ AND2 b
1,b
4 ) & not (
$ AND2 b
1,b
4 & not
$ b
13 ) & not (
$ b
14 & not
$ XOR3 (AND2 b2,b4),
(AND2 b1,b5),
{} ) & not (
$ XOR3 (AND2 b2,b4),
(AND2 b1,b5),
{} & not
$ b
14 ) & not (
$ b
16 & not
$ MAJ3 (AND2 b2,b4),
(AND2 b1,b5),
{} ) & not (
$ MAJ3 (AND2 b2,b4),
(AND2 b1,b5),
{} & not
$ b
16 ) & not (
$ b
15 & not
$ XOR3 (AND2 b3,b4),
(AND2 b2,b5),
{} ) & not (
$ XOR3 (AND2 b3,b4),
(AND2 b2,b5),
{} & not
$ b
15 ) & not (
$ b
17 & not
$ MAJ3 (AND2 b3,b4),
(AND2 b2,b5),
{} ) & not (
$ MAJ3 (AND2 b3,b4),
(AND2 b2,b5),
{} & not
$ b
17 ) & not (
$ b
18 & not
$ XOR3 b
15,
(AND2 b1,b6),b
16 ) & not (
$ XOR3 b
15,
(AND2 b1,b6),b
16 & not
$ b
18 ) & not (
$ b
20 & not
$ MAJ3 b
15,
(AND2 b1,b6),b
16 ) & not (
$ MAJ3 b
15,
(AND2 b1,b6),b
16 & not
$ b
20 ) & not (
$ b
19 & not
$ XOR3 (AND2 b3,b5),
(AND2 b2,b6),b
17 ) & not (
$ XOR3 (AND2 b3,b5),
(AND2 b2,b6),b
17 & not
$ b
19 ) & not (
$ b
21 & not
$ MAJ3 (AND2 b3,b5),
(AND2 b2,b6),b
17 ) & not (
$ MAJ3 (AND2 b3,b5),
(AND2 b2,b6),b
17 & not
$ b
21 ) & not (
$ b
22 & not
$ XOR3 b
19,
{} ,b
20 ) & not (
$ XOR3 b
19,
{} ,b
20 & not
$ b
22 ) & not (
$ b
24 & not
$ MAJ3 b
19,
{} ,b
20 ) & not (
$ MAJ3 b
19,
{} ,b
20 & not
$ b
24 ) & not (
$ b
23 & not
$ XOR3 (AND2 b3,b6),b
24,b
21 ) & not (
$ XOR3 (AND2 b3,b6),b
24,b
21 & not
$ b
23 ) & not (
$ b
25 & not
$ MAJ3 (AND2 b3,b6),b
24,b
21 ) & not (
$ MAJ3 (AND2 b3,b6),b
24,b
21 & not
$ b
25 ) & not (
$ b
7 & not
$ b
13 ) & not (
$ b
13 & not
$ b
7 ) & not (
$ b
8 & not
$ b
14 ) & not (
$ b
14 & not
$ b
8 ) & not (
$ b
9 & not
$ b
18 ) & not (
$ b
18 & not
$ b
9 ) & not (
$ b
10 & not
$ b
22 ) & not (
$ b
22 & not
$ b
10 ) & not (
$ b
11 & not
$ b
23 ) & not (
$ b
23 & not
$ b
11 ) & not (
$ b
12 & not
$ b
25 ) & not (
$ b
25 & not
$ b
12 ) & not ( not (
$ b
7 & not
$ MULT310 b
3,b
2,b
5,b
1,b
4 ) & not (
$ MULT310 b
3,b
2,b
5,b
1,b
4 & not
$ b
7 ) & not (
$ b
8 & not
$ MULT311 b
3,b
2,b
5,b
1,b
4 ) & not (
$ MULT311 b
3,b
2,b
5,b
1,b
4 & not
$ b
8 ) & not (
$ b
9 & not
$ MULT321 b
3,b
6,b
2,b
5,b
1,b
4 ) & not (
$ MULT321 b
3,b
6,b
2,b
5,b
1,b
4 & not
$ b
9 ) & not (
$ b
10 & not
$ MULT322 b
3,b
6,b
2,b
5,b
1,b
4 ) & not (
$ MULT322 b
3,b
6,b
2,b
5,b
1,b
4 & not
$ b
10 ) & not (
$ b
11 & not
$ MULT323 b
3,b
6,b
2,b
5,b
1,b
4 ) & not (
$ MULT323 b
3,b
6,b
2,b
5,b
1,b
4 & not
$ b
11 ) & not (
$ b
12 & not
$ MULT324 b
3,b
6,b
2,b
5,b
1,b
4 ) & not (
$ MULT324 b
3,b
6,b
2,b
5,b
1,b
4 & not
$ b
12 ) ) )
theorem Th3: :: GATE_5:3
for b
1, b
2, b
3, b
4, b
5, b
6, b
7, b
8, b
9, b
10, b
11, b
12, b
13, b
14, b
15, b
16, b
17, b
18, b
19, b
20, b
21, b
22, b
23, b
24, b
25 being
set holds
not ( not (
$ b
13 & not
$ AND2 b
1,b
4 ) & not (
$ AND2 b
1,b
4 & not
$ b
13 ) & not (
$ b
14 & not
$ XOR3 (AND2 b2,b4),
(AND2 b1,b5),
{} ) & not (
$ XOR3 (AND2 b2,b4),
(AND2 b1,b5),
{} & not
$ b
14 ) & not (
$ b
17 & not
$ MAJ3 (AND2 b2,b4),
(AND2 b1,b5),
{} ) & not (
$ MAJ3 (AND2 b2,b4),
(AND2 b1,b5),
{} & not
$ b
17 ) & not (
$ b
15 & not
$ XOR3 (AND2 b3,b4),
(AND2 b2,b5),
(AND2 b1,b6) ) & not (
$ XOR3 (AND2 b3,b4),
(AND2 b2,b5),
(AND2 b1,b6) & not
$ b
15 ) & not (
$ b
18 & not
$ MAJ3 (AND2 b3,b4),
(AND2 b2,b5),
(AND2 b1,b6) ) & not (
$ MAJ3 (AND2 b3,b4),
(AND2 b2,b5),
(AND2 b1,b6) & not
$ b
18 ) & not (
$ b
16 & not
$ XOR3 (AND2 b3,b5),
(AND2 b2,b6),
{} ) & not (
$ XOR3 (AND2 b3,b5),
(AND2 b2,b6),
{} & not
$ b
16 ) & not (
$ b
19 & not
$ MAJ3 (AND2 b3,b5),
(AND2 b2,b6),
{} ) & not (
$ MAJ3 (AND2 b3,b5),
(AND2 b2,b6),
{} & not
$ b
19 ) & not (
$ b
20 & not
$ XOR3 b
15,b
17,
{} ) & not (
$ XOR3 b
15,b
17,
{} & not
$ b
20 ) & not (
$ b
23 & not
$ MAJ3 b
15,b
17,
{} ) & not (
$ MAJ3 b
15,b
17,
{} & not
$ b
23 ) & not (
$ b
21 & not
$ XOR3 b
16,b
18,b
23 ) & not (
$ XOR3 b
16,b
18,b
23 & not
$ b
21 ) & not (
$ b
24 & not
$ MAJ3 b
16,b
18,b
23 ) & not (
$ MAJ3 b
16,b
18,b
23 & not
$ b
24 ) & not (
$ b
22 & not
$ XOR3 (AND2 b3,b6),b
19,b
24 ) & not (
$ XOR3 (AND2 b3,b6),b
19,b
24 & not
$ b
22 ) & not (
$ b
25 & not
$ MAJ3 (AND2 b3,b6),b
19,b
24 ) & not (
$ MAJ3 (AND2 b3,b6),b
19,b
24 & not
$ b
25 ) & not (
$ b
7 & not
$ b
13 ) & not (
$ b
13 & not
$ b
7 ) & not (
$ b
8 & not
$ b
14 ) & not (
$ b
14 & not
$ b
8 ) & not (
$ b
9 & not
$ b
20 ) & not (
$ b
20 & not
$ b
9 ) & not (
$ b
10 & not
$ b
21 ) & not (
$ b
21 & not
$ b
10 ) & not (
$ b
11 & not
$ b
22 ) & not (
$ b
22 & not
$ b
11 ) & not (
$ b
12 & not
$ b
25 ) & not (
$ b
25 & not
$ b
12 ) & not ( not (
$ b
7 & not
$ MULT310 b
3,b
2,b
5,b
1,b
4 ) & not (
$ MULT310 b
3,b
2,b
5,b
1,b
4 & not
$ b
7 ) & not (
$ b
8 & not
$ MULT311 b
3,b
2,b
5,b
1,b
4 ) & not (
$ MULT311 b
3,b
2,b
5,b
1,b
4 & not
$ b
8 ) & not (
$ b
9 & not
$ MULT321 b
3,b
6,b
2,b
5,b
1,b
4 ) & not (
$ MULT321 b
3,b
6,b
2,b
5,b
1,b
4 & not
$ b
9 ) & not (
$ b
10 & not
$ MULT322 b
3,b
6,b
2,b
5,b
1,b
4 ) & not (
$ MULT322 b
3,b
6,b
2,b
5,b
1,b
4 & not
$ b
10 ) & not (
$ b
11 & not
$ MULT323 b
3,b
6,b
2,b
5,b
1,b
4 ) & not (
$ MULT323 b
3,b
6,b
2,b
5,b
1,b
4 & not
$ b
11 ) & not (
$ b
12 & not
$ MULT324 b
3,b
6,b
2,b
5,b
1,b
4 ) & not (
$ MULT324 b
3,b
6,b
2,b
5,b
1,b
4 & not
$ b
12 ) ) )
notation
let c
1, c
2, c
3 be
set ;
synonym CLAADD1 c
1,c
2,c
3 for XOR3 c
1,c
2,c
3;
synonym CLACARR1 c
1,c
2,c
3 for MAJ3 c
1,c
2,c
3;
end;
definition
let c
1, c
2, c
3, c
4, c
5 be
set ;
canceled;canceled;func CLAADD2 c
3,c
4,c
1,c
2,c
5 -> set equals :: GATE_5:def 16
XOR3 a
3,a
4,
(MAJ3 a1,a2,a5);
correctness
coherence
XOR3 c3,c4,(MAJ3 c1,c2,c5) is set ;
;
func CLACARR2 c
3,c
4,c
1,c
2,c
5 -> set equals :: GATE_5:def 17
OR2 (AND2 a3,a4),
(AND2 (OR2 a3,a4),(MAJ3 a1,a2,a5));
correctness
coherence
OR2 (AND2 c3,c4),(AND2 (OR2 c3,c4),(MAJ3 c1,c2,c5)) is set ;
;
end;
:: deftheorem Def14 GATE_5:def 14 :
canceled;
:: deftheorem Def15 GATE_5:def 15 :
canceled;
:: deftheorem Def16 defines CLAADD2 GATE_5:def 16 :
for b
1, b
2, b
3, b
4, b
5 being
set holds
CLAADD2 b
3,b
4,b
1,b
2,b
5 = XOR3 b
3,b
4,
(MAJ3 b1,b2,b5);
:: deftheorem Def17 defines CLACARR2 GATE_5:def 17 :
for b
1, b
2, b
3, b
4, b
5 being
set holds
CLACARR2 b
3,b
4,b
1,b
2,b
5 = OR2 (AND2 b3,b4),
(AND2 (OR2 b3,b4),(MAJ3 b1,b2,b5));
definition
let c
1, c
2, c
3, c
4, c
5, c
6, c
7 be
set ;
func CLAADD3 c
5,c
6,c
3,c
4,c
1,c
2,c
7 -> set equals :: GATE_5:def 18
XOR3 a
5,a
6,
(CLACARR2 a3,a4,a1,a2,a7);
correctness
coherence
XOR3 c5,c6,(CLACARR2 c3,c4,c1,c2,c7) is set ;
;
func CLACARR3 c
5,c
6,c
3,c
4,c
1,c
2,c
7 -> set equals :: GATE_5:def 19
OR3 (AND2 a5,a6),
(AND2 (OR2 a5,a6),(AND2 a3,a4)),
(AND3 (OR2 a5,a6),(OR2 a3,a4),(MAJ3 a1,a2,a7));
correctness
coherence
OR3 (AND2 c5,c6),(AND2 (OR2 c5,c6),(AND2 c3,c4)),(AND3 (OR2 c5,c6),(OR2 c3,c4),(MAJ3 c1,c2,c7)) is set ;
;
end;
:: deftheorem Def18 defines CLAADD3 GATE_5:def 18 :
for b
1, b
2, b
3, b
4, b
5, b
6, b
7 being
set holds
CLAADD3 b
5,b
6,b
3,b
4,b
1,b
2,b
7 = XOR3 b
5,b
6,
(CLACARR2 b3,b4,b1,b2,b7);
:: deftheorem Def19 defines CLACARR3 GATE_5:def 19 :
for b
1, b
2, b
3, b
4, b
5, b
6, b
7 being
set holds
CLACARR3 b
5,b
6,b
3,b
4,b
1,b
2,b
7 = OR3 (AND2 b5,b6),
(AND2 (OR2 b5,b6),(AND2 b3,b4)),
(AND3 (OR2 b5,b6),(OR2 b3,b4),(MAJ3 b1,b2,b7));
definition
let c
1, c
2, c
3, c
4, c
5, c
6, c
7, c
8, c
9 be
set ;
func CLAADD4 c
7,c
8,c
5,c
6,c
3,c
4,c
1,c
2,c
9 -> set equals :: GATE_5:def 20
XOR3 a
7,a
8,
(CLACARR3 a5,a6,a3,a4,a1,a2,a9);
correctness
coherence
XOR3 c7,c8,(CLACARR3 c5,c6,c3,c4,c1,c2,c9) is set ;
;
func CLACARR4 c
7,c
8,c
5,c
6,c
3,c
4,c
1,c
2,c
9 -> set equals :: GATE_5:def 21
OR4 (AND2 a7,a8),
(AND2 (OR2 a7,a8),(AND2 a5,a6)),
(AND3 (OR2 a7,a8),(OR2 a5,a6),(AND2 a3,a4)),
(AND4 (OR2 a7,a8),(OR2 a5,a6),(OR2 a3,a4),(MAJ3 a1,a2,a9));
correctness
coherence
OR4 (AND2 c7,c8),(AND2 (OR2 c7,c8),(AND2 c5,c6)),(AND3 (OR2 c7,c8),(OR2 c5,c6),(AND2 c3,c4)),(AND4 (OR2 c7,c8),(OR2 c5,c6),(OR2 c3,c4),(MAJ3 c1,c2,c9)) is set ;
;
end;
:: deftheorem Def20 defines CLAADD4 GATE_5:def 20 :
for b
1, b
2, b
3, b
4, b
5, b
6, b
7, b
8, b
9 being
set holds
CLAADD4 b
7,b
8,b
5,b
6,b
3,b
4,b
1,b
2,b
9 = XOR3 b
7,b
8,
(CLACARR3 b5,b6,b3,b4,b1,b2,b9);
:: deftheorem Def21 defines CLACARR4 GATE_5:def 21 :
for b
1, b
2, b
3, b
4, b
5, b
6, b
7, b
8, b
9 being
set holds
CLACARR4 b
7,b
8,b
5,b
6,b
3,b
4,b
1,b
2,b
9 = OR4 (AND2 b7,b8),
(AND2 (OR2 b7,b8),(AND2 b5,b6)),
(AND3 (OR2 b7,b8),(OR2 b5,b6),(AND2 b3,b4)),
(AND4 (OR2 b7,b8),(OR2 b5,b6),(OR2 b3,b4),(MAJ3 b1,b2,b9));
theorem Th4: :: GATE_5:4
for b
1, b
2, b
3, b
4, b
5, b
6, b
7, b
8, b
9, b
10, b
11, b
12, b
13, b
14, b
15, b
16, b
17, b
18, b
19 being
set holds
not ( not (
$ b
13 & not
$ AND2 b
1,b
4 ) & not (
$ AND2 b
1,b
4 & not
$ b
13 ) & not (
$ b
14 & not
$ XOR3 (AND2 b2,b4),
(AND2 b1,b5),
{} ) & not (
$ XOR3 (AND2 b2,b4),
(AND2 b1,b5),
{} & not
$ b
14 ) & not (
$ b
17 & not
$ MAJ3 (AND2 b2,b4),
(AND2 b1,b5),
{} ) & not (
$ MAJ3 (AND2 b2,b4),
(AND2 b1,b5),
{} & not
$ b
17 ) & not (
$ b
15 & not
$ XOR3 (AND2 b3,b4),
(AND2 b2,b5),
(AND2 b1,b6) ) & not (
$ XOR3 (AND2 b3,b4),
(AND2 b2,b5),
(AND2 b1,b6) & not
$ b
15 ) & not (
$ b
18 & not
$ MAJ3 (AND2 b3,b4),
(AND2 b2,b5),
(AND2 b1,b6) ) & not (
$ MAJ3 (AND2 b3,b4),
(AND2 b2,b5),
(AND2 b1,b6) & not
$ b
18 ) & not (
$ b
16 & not
$ XOR3 (AND2 b3,b5),
(AND2 b2,b6),
{} ) & not (
$ XOR3 (AND2 b3,b5),
(AND2 b2,b6),
{} & not
$ b
16 ) & not (
$ b
19 & not
$ MAJ3 (AND2 b3,b5),
(AND2 b2,b6),
{} ) & not (
$ MAJ3 (AND2 b3,b5),
(AND2 b2,b6),
{} & not
$ b
19 ) & not (
$ b
7 & not
$ b
13 ) & not (
$ b
13 & not
$ b
7 ) & not (
$ b
8 & not
$ b
14 ) & not (
$ b
14 & not
$ b
8 ) & not (
$ b
9 & not
$ CLAADD1 b
15,b
17,
{} ) & not (
$ CLAADD1 b
15,b
17,
{} & not
$ b
9 ) & not (
$ b
10 & not
$ CLAADD2 b
16,b
18,b
15,b
17,
{} ) & not (
$ CLAADD2 b
16,b
18,b
15,b
17,
{} & not
$ b
10 ) & not (
$ b
11 & not
$ CLAADD3 (AND2 b3,b6),b
19,b
16,b
18,b
15,b
17,
{} ) & not (
$ CLAADD3 (AND2 b3,b6),b
19,b
16,b
18,b
15,b
17,
{} & not
$ b
11 ) & not (
$ b
12 & not
$ CLACARR3 (AND2 b3,b6),b
19,b
16,b
18,b
15,b
17,
{} ) & not (
$ CLACARR3 (AND2 b3,b6),b
19,b
16,b
18,b
15,b
17,
{} & not
$ b
12 ) & not ( not (
$ b
7 & not
$ MULT310 b
3,b
2,b
5,b
1,b
4 ) & not (
$ MULT310 b
3,b
2,b
5,b
1,b
4 & not
$ b
7 ) & not (
$ b
8 & not
$ MULT311 b
3,b
2,b
5,b
1,b
4 ) & not (
$ MULT311 b
3,b
2,b
5,b
1,b
4 & not
$ b
8 ) & not (
$ b
9 & not
$ MULT321 b
3,b
6,b
2,b
5,b
1,b
4 ) & not (
$ MULT321 b
3,b
6,b
2,b
5,b
1,b
4 & not
$ b
9 ) & not (
$ b
10 & not
$ MULT322 b
3,b
6,b
2,b
5,b
1,b
4 ) & not (
$ MULT322 b
3,b
6,b
2,b
5,b
1,b
4 & not
$ b
10 ) & not (
$ b
11 & not
$ MULT323 b
3,b
6,b
2,b
5,b
1,b
4 ) & not (
$ MULT323 b
3,b
6,b
2,b
5,b
1,b
4 & not
$ b
11 ) & not (
$ b
12 & not
$ MULT324 b
3,b
6,b
2,b
5,b
1,b
4 ) & not (
$ MULT324 b
3,b
6,b
2,b
5,b
1,b
4 & not
$ b
12 ) ) )