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 (* Problematic objects for disambiguation/typechecking ********************)
17 set "baseuri" "cic:/matita/LAMBDA-TYPES/Level-1/problems".
19 include "LambdaDelta/theory.ma".
21 (* Problem 1: disambiguation errors with these objects *)
23 (* leq_trans (in problems-4)
26 (* Problem 2: assertion failure raised by type checker on this object *)
29 \lambda g:G.\lambda c:C.\lambda t:T.
31 \lambda H:\forall t1:T.\forall H:tau0 g c t t1.P t1.
33 \forall t1:T.\forall H1:tau1 g c t t1.
34 P t1 \to \forall t2:T.\forall H2:tau0 g c t1 t2.P t2.
35 let rec f (t1:T) (H2:tau1 g c t t1) on H2 ≝
36 match H2 return \lambda t2:T.\lambda H3:tau1 g c t t2.P t2 with
37 [ tau1_tau0 => \lambda t2:T.\lambda H3:(tau0 g c t t2).H t2 H3
39 \lambda t2:T.\lambda H3:(tau1 g c t t2).\lambda t3:T.
40 \lambda H4:tau0 g c t2 t3.H1 t2 H3 (f t2 H3) t3 H4
45 inductive tau1 (g:G) (c:C) (t1:T): T \to Prop \def
46 | tau1_tau0: \forall (t2: T).((tau0 g c t1 t2) \to (tau1 g c t1 t2))
47 | tau1_sing: \forall (t: T).((tau1 g c t1 t) \to (\forall (t2: T).((tau0 g c
48 t t2) \to (tau1 g c t1 t2))))).