@@ -20,30 +20,31 @@ inductive Vec.{u} (α : Type) : Nat → Type u where
2020 | cons1 {n} : α → Vec α n → Vec α (n + 1 )
2121 | cons2 {n} : α → Vec α n → Vec α (n + 1 )
2222
23- @[reducible] protected def Vec.noConfusionType'. {u_1, u} : {α : Type } →
24- Sort u_1 → {a : Nat} → Vec.{u} α a → {a : Nat} → Vec α a → Sort u_1 :=
25- fun P _ x1 _ x2 =>
23+ @[reducible] protected def Vec.noConfusionType' .{u_1, u} : Sort u_1 →
24+ {α : Type } → {a : Nat} → Vec.{u} α a →
25+ {α : Type } → {a : Nat} → Vec α a → Sort u_1 :=
26+ fun P _ _ x1 _ _ x2 =>
2627 Vec.casesOn x1
2728 (if h : x2.ctorIdx = 0 then
2829 Vec.nil.elim (motive := fun _ _ => Sort u_1) x2 h (P → P)
2930 else P)
3031 (fun {n} a_1 a_2 => if h : x2.ctorIdx = 1 then
31- Vec.cons1.elim (motive := fun _ _ => Sort u_1) x2 h fun {n_1} a a_3 => (n = n_1 → a_1 = a → a_2 ≍ a_3 → P) → P
32+ Vec.cons1.elim (motive := fun _ _ => Sort u_1) x2 h fun {n_1} a a_3 => (n = n_1 → a_1 ≍ a → a_2 ≍ a_3 → P) → P
3233 else P)
3334 (fun {n} a_1 a_2 => if h : x2.ctorIdx = 2 then
34- Vec.cons2.elim (motive := fun _ _ => Sort u_1) x2 h fun {n_1} a a_3 => (n = n_1 → a_1 = a → a_2 ≍ a_3 → P) → P
35+ Vec.cons2.elim (motive := fun _ _ => Sort u_1) x2 h fun {n_1} a a_3 => (n = n_1 → a_1 ≍ a → a_2 ≍ a_3 → P) → P
3536 else P)
3637
3738/--
38- info: @[ reducible ] protected def Vec.noConfusionType.{u_1, u} : {α : Type} →
39- Sort u_1 → {a : Nat} → Vec α a → {a' : Nat} → Vec α a' → Sort u_1 :=
40- fun {α} P {a} t {a'} t' =>
39+ info: @[ reducible ] protected def Vec.noConfusionType.{u_1, u} : Sort u_1 →
40+ {α : Type} → {a : Nat} → Vec α a → {α' : Type} → { a' : Nat} → Vec α' a' → Sort u_1 :=
41+ fun P {α} {a} t {α'} {a'} t' =>
4142 Vec.casesOn t (if h : t'.ctorIdx = 0 then Vec.nil.elim t' h (P → P) else P)
4243 (fun {n} a a_1 =>
43- if h : t'.ctorIdx = 1 then Vec.cons1.elim t' h fun {n_1} a_2 a_3 => (n = n_1 → a = a_2 → a_1 ≍ a_3 → P) → P
44+ if h : t'.ctorIdx = 1 then Vec.cons1.elim t' h fun {n_1} a_2 a_3 => (n = n_1 → a ≍ a_2 → a_1 ≍ a_3 → P) → P
4445 else P)
4546 fun {n} a a_1 =>
46- if h : t'.ctorIdx = 2 then Vec.cons2.elim t' h fun {n_1} a_2 a_3 => (n = n_1 → a = a_2 → a_1 ≍ a_3 → P) → P else P
47+ if h : t'.ctorIdx = 2 then Vec.cons2.elim t' h fun {n_1} a_2 a_3 => (n = n_1 → a ≍ a_2 → a_1 ≍ a_3 → P) → P else P
4748-/
4849#guard_msgs in
4950#print Vec.noConfusionType
0 commit comments