1 (**************************************************************************)
4 (* ||A|| A project by Andrea Asperti *)
6 (* ||I|| Developers: *)
7 (* ||T|| The HELM team. *)
8 (* ||A|| http://helm.cs.unibo.it *)
10 (* \ / This file is distributed under the terms of the *)
11 (* v GNU General Public License Version 2 *)
13 (**************************************************************************)
15 set "baseuri" "cic:/matita/tests/discriminate".
16 include "legacy/coq.ma".
17 alias id "not" = "cic:/Coq/Init/Logic/not.con".
18 alias num (instance 0) = "natural number".
19 alias symbol "eq" (instance 0) = "Coq's leibnitz's equality".
20 alias id "False" = "cic:/Coq/Init/Logic/False.ind#xpointer(1/1)".
21 alias id "True" = "cic:/Coq/Init/Logic/True.ind#xpointer(1/1)".
22 alias id "nat" = "cic:/Coq/Init/Datatypes/nat.ind#xpointer(1/1)".
23 alias id "bool" = "cic:/Coq/Init/Datatypes/bool.ind#xpointer(1/1)".
24 alias id "S" = "cic:/Coq/Init/Datatypes/nat.ind#xpointer(1/1/2)".
25 alias id "O" = "cic:/Coq/Init/Datatypes/nat.ind#xpointer(1/1/1)".
27 inductive foo: Prop \def I_foo: foo.
29 alias num (instance 0) = "binary integer number".
31 1 = 0 \to (\forall p:Prop. p \to not p).
33 generalize in match I_foo.
37 inductive bar_list (A:Set): Set \def
39 | bar_cons: A \to bar_list A \to bar_list A.
43 \forall A:Set.\forall x:A.\forall l:bar_list A.
44 bar_nil A = bar_cons A x l \to False.
49 inductive dt (A:Type): Type \to Type \def
50 | k1: \forall T:Type. dt A T
51 | k2: \forall T:Type. \forall T':Type. dt A (T \to T').
54 k1 False (False → True) = k2 False False True → False.
59 inductive dddt (A:Type): Type \to Type \def
63 theorem stupid4: kkk1 False = kkk2 False \to False.
68 theorem recursive: S (S (S O)) = S (S O) \to False.