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 (**************************************************************************)
17 include "logic/equality.ma".
20 axiom A : nat -> Type.
21 axiom B : nat -> Type.
22 axiom A1: nat -> Type.
23 axiom B1: nat -> Type.
24 axiom c : ∀n,m. A1 n -> A m.
25 axiom d : ∀n,m. B n -> B1 m.
26 axiom f : ∀n,m. A n -> B m.
29 coercion cic:/matita/tests/coercions_contravariant/c.con.
30 coercion cic:/matita/tests/coercions_contravariant/d.con.
32 definition foo := λn,n1,m,m1.(λx.d m m1 (f n m (c n1 n x)) : A1 n1 -> B1 m1).
33 definition foo1_1 := λn,n1,m,m1.(f n m : A1 n1 -> B1 m1).
35 definition h := λn,m.λx:A n.g m.
36 definition foo2 := λn,n1,m,m1.(h n m : A1 n1 -> B1 m1).
37 definition foo3 := λn1,n,m,m1.(h n m : A1 n1 -> B1 m1).
38 definition foo4 := λn1,n,m1,m.(h n m : A1 n1 -> B1 m1).