60 lines
745 B
Text
60 lines
745 B
Text
import standard
|
|
inductive F2 : Type
|
|
| O : F2
|
|
| I : F2
|
|
|
|
namespace F2
|
|
|
|
definition add : F2 → F2 → F2
|
|
| O O := O
|
|
| O I := I
|
|
| I O := I
|
|
| I I := O
|
|
|
|
infix + := F2.add
|
|
|
|
end F2
|
|
|
|
open F2 nat
|
|
|
|
#reduce (1 : nat) + 1
|
|
#reduce (1 : nat) + (1 : nat)
|
|
|
|
example : true :=
|
|
begin
|
|
assert H : (1 : nat) + (1 : nat) = 2,
|
|
reflexivity,
|
|
constructor
|
|
end
|
|
|
|
example : true :=
|
|
begin
|
|
assert H : 1 + 1 = 2,
|
|
reflexivity,
|
|
constructor
|
|
end
|
|
|
|
example : true :=
|
|
begin
|
|
assert H : (1:nat) + 1 = 2,
|
|
reflexivity,
|
|
constructor
|
|
end
|
|
|
|
example : true :=
|
|
begin
|
|
assert H : I + O = I,
|
|
reflexivity,
|
|
constructor
|
|
end
|
|
|
|
example : true :=
|
|
begin
|
|
assert H1 : I + O = I,
|
|
reflexivity,
|
|
assert H2 : 1 + 0 = 1,
|
|
reflexivity,
|
|
assert H3 : (1:int) + 0 = 1,
|
|
reflexivity,
|
|
constructor
|
|
end
|