(* PURE TYPE SYSTEMS OF THE λ-CUBE ********************************************)
 
-inductive Cube_Ax (i,j:nat): Prop ≝
-  | star_box: i = 0 → j = 1 → Cube_Ax i j
+inductive Cube_Ax: nat → nat → Prop ≝
+  | star_box: Cube_Ax 0 1
 .
 
 (* The λPω pure type system (a.k.a. λC or CC) *********************************)
 
-inductive CC_Re (i,j,k:nat): Prop ≝
-   | star_star: i = 0 → j = 0 → k = 0 → CC_Re i j k
-   | box_star : i = 1 → j = 0 → k = 0 → CC_Re i j k
-   | box_box  : i = 1 → j = 1 → k = 1 → CC_Re i j k
-   | star_box : i = 0 → j = 1 → k = 1 → CC_Re i j k
+inductive CC_Re: nat → nat → nat → Prop ≝
+   | star_star: CC_Re 0 0 0
+   | box_star : CC_Re 1 0 0
+   | box_box  : CC_Re 1 1 1
+   | star_box : CC_Re 0 1 1
 .
 
 definition CC: pts ≝ mk_pts Cube_Ax CC_Re conv.
 
 (* The λω pure type system (a.k.a. Fω) ****************************************)
 
-inductive FO_Re (i,j,k:nat): Prop ≝
-   | star_star: i = 0 → j = 0 → k = 0 → FO_Re i j k
-   | box_star : i = 1 → j = 0 → k = 0 → FO_Re i j k
-   | box_box  : i = 1 → j = 1 → k = 1 → FO_Re i j k
+inductive FO_Re: nat → nat → nat → Prop ≝
+   | star_star: FO_Re 0 0 0
+   | box_star : FO_Re 1 0 0
+   | box_box  : FO_Re 1 1 1
 .
 
 definition FO: pts ≝ mk_pts Cube_Ax FO_Re conv.
 
    sat3: SAT3 mem;  (* we add the clusure by rev dapp *)
    sat4: SAT4 mem   (* we add the clusure by dummies *) 
 }.
+
 (* HIDDEN BUG:
  * if SAT0 and SAT1 are expanded,
  * the projections sat0 and sat1 are not generated
 definition dep_mem ≝ λB,C,M. ∀N. N ∈ B → App M N ∈ C.
 
 lemma dep_cr1: ∀B,C. CR1 (dep_mem B C).
-#B #C #M #Hdep (lapply (Hdep (Sort 0) ?)) /2 by SAT0_sort/ /3/ (**) (* adiacent auto *)
+#B #C #M #Hdep (lapply (Hdep (Sort 0) ?)) -Hdep /3/ @SAT0_sort //
 qed.
 
 lemma dep_sat0: ∀B,C. SAT0 (dep_mem B C).
 qed.
 
 lemma dep_sat3: ∀B,C. SAT3 (dep_mem B C).
-#B #C #N #l1 #l2 #HN #M #HM <appl_append >associative_append /3/
+#B #C #M #N #l #H #L #HL <appl_append @sat3 /2/
 qed.
 
 lemma dep_sat4: ∀B,C. SAT4 (dep_mem B C).
 
 definition SAT2 ≝ λ(P:?→Prop). ∀N,L,M,l. SN N → SN L → 
                   P (Appl M[0:=L] l) → P (Appl (Lambda N M) (L::l)).
 
-definition SAT3 ≝ λ(P:?→Prop). ∀N,l1,l2. P (Appl (D (Appl N l1)) l2) → 
-                               P (Appl (D N) (l1@l2)).
+definition SAT3 ≝ λ(P:?→Prop). ∀M,N,l. P (Appl (D (App M N)) l) → 
+                               P (Appl (D M) (N::l)).
 
 definition SAT4 ≝ λ(P:?→Prop). ∀M. P M → P (D M).
 
 #P #i #HP @(HP i (nil ?) …) //
 qed.
 
-lemma SAT3_1: ∀P,N,M. SAT3 P → P (D (App N M)) → P (App (D N) M).
-#P #N #M #HP #H @(HP … ([?]) ([])) @H
+lemma SAT3_1: ∀P,M,N. SAT3 P → P (D (App M N)) → P (App (D M) N).
+#P #M #N #HP #H @(HP … ([])) @H
 qed.
 
 (* axiomatization *************************************************************)