2022-07-15 19:39:11 +03:00
|
|
|
module M;
|
|
|
|
|
2023-01-03 15:49:04 +03:00
|
|
|
type Bool :=
|
2023-04-12 11:07:01 +03:00
|
|
|
| true : Bool
|
2023-01-03 15:49:04 +03:00
|
|
|
| false : Bool;
|
2022-07-15 19:39:11 +03:00
|
|
|
|
2023-01-03 15:49:04 +03:00
|
|
|
type T :=
|
2023-04-12 11:07:01 +03:00
|
|
|
| t : T;
|
2022-07-15 19:39:11 +03:00
|
|
|
|
2023-01-03 15:49:04 +03:00
|
|
|
type Nat :=
|
2023-04-12 11:07:01 +03:00
|
|
|
| zero : Nat
|
2023-01-03 15:49:04 +03:00
|
|
|
| suc : Nat → Nat;
|
2022-07-15 19:39:11 +03:00
|
|
|
|
|
|
|
f : _;
|
2022-09-30 03:55:32 +03:00
|
|
|
f false false := true;
|
|
|
|
f true _ := false;
|
2022-07-15 19:39:11 +03:00
|
|
|
|
2023-01-03 15:49:04 +03:00
|
|
|
type Pair (A : Type) (B : Type) :=
|
2023-04-12 11:07:01 +03:00
|
|
|
| mkPair : A → B → Pair A B;
|
2022-07-15 19:39:11 +03:00
|
|
|
|
|
|
|
g : _;
|
2022-09-30 03:55:32 +03:00
|
|
|
g (mkPair (mkPair zero false) true) := mkPair false zero;
|