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 (**************************************************************************)
18 For cut elimination and confluence
21 include "datatypes_defs/Context.ma".
24 inductive Weight: Nat \to Context \to Proof \to Nat \to Prop \def
25 | weight_prin: \forall Q,n,m. Weight m Q (prin n) m
26 | weight_impw: \forall p,Q,m0,m1. Weight m0 Q p m1 \to
27 \forall m. (m1 + m0 == m) \to
28 Weight m0 Q (impw p) m
29 | weight_impr: \forall p,Q,m0,m1. Weight m0 Q p m1 \to
30 \forall m. (m1 + m0 == m) \to
31 Weight m0 Q (impr p) m
32 | weight_scut: \forall p1,Q,m0,m1. Weight (succ m0) Q p1 m1 \to
33 \forall p2,m2. Weight (succ m0) Q p2 m2 \to
34 \forall m. (m1 + m2 == m) \to
35 Weight m0 Q (scut p1 p2) m