lean4-htt/tests/elab/mutwf3.lean.out.expected
Garmelon 08eb78a5b2
chore: switch to new test/bench suite (#12590)
This PR sets up the new integrated test/bench suite. It then migrates
all benchmarks and some related tests to the new suite. There's also
some documentation and some linting.

For now, a lot of the old tests are left alone so this PR doesn't become
even larger than it already is. Eventually, all tests should be migrated
to the new suite though so there isn't a confusing mix of two systems.
2026-02-25 13:51:53 +00:00

650 lines
40 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

def Ex1.f._mutual.{u_1} : {α : Type u_1} →
(x : (_ : Nat) ×' (_ : α) ×' α ⊕' (_ : α) ×' (_ : Nat) ×' α ⊕' (_ : α) ×' (_ : α) ×' Nat) →
PSum.casesOn x (fun _x => α) fun _x => PSum.casesOn _x (fun _x => α × α) fun _x => α :=
fun {α} =>
⋯.fix fun x a =>
PSum.casesOn (motive := fun x =>
((y : (_ : Nat) ×' (_ : α) ×' α ⊕' (_ : α) ×' (_ : Nat) ×' α ⊕' (_ : α) ×' (_ : α) ×' Nat) →
(invImage
(fun x =>
PSum.casesOn x (fun _x => PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a_2 a_3 => (a, 2))
fun _x =>
PSum.casesOn _x (fun _x => PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a a_2 => (a, 1))
fun _x => PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a a_2 => (a_2, 0))
Prod.instWellFoundedRelation).1
y x →
PSum.casesOn y (fun _x => α) fun _x => PSum.casesOn _x (fun _x => α × α) fun _x => α) →
PSum.casesOn x (fun _x => α) fun _x => PSum.casesOn _x (fun _x => α × α) fun _x => α)
x
(fun _x a =>
PSigma.casesOn (motive := fun _x =>
((y : (_ : Nat) ×' (_ : α) ×' α ⊕' (_ : α) ×' (_ : Nat) ×' α ⊕' (_ : α) ×' (_ : α) ×' Nat) →
(invImage
(fun x =>
PSum.casesOn x
(fun _x => PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a_2 a_3 => (a, 2)) fun _x =>
PSum.casesOn _x
(fun _x => PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a a_2 => (a, 1)) fun _x =>
PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a a_2 => (a_2, 0))
Prod.instWellFoundedRelation).1
y (PSum.inl _x) →
PSum.casesOn y (fun _x => α) fun _x => PSum.casesOn _x (fun _x => α × α) fun _x => α) →
α)
_x
(fun a a_1 a_2 =>
PSigma.casesOn (motive := fun a_3 =>
((y : (_ : Nat) ×' (_ : α) ×' α ⊕' (_ : α) ×' (_ : Nat) ×' α ⊕' (_ : α) ×' (_ : α) ×' Nat) →
(invImage
(fun x =>
PSum.casesOn x
(fun _x => PSigma.casesOn _x fun a a_4 => PSigma.casesOn a_4 fun a_5 a_6 => (a, 2))
fun _x =>
PSum.casesOn _x
(fun _x => PSigma.casesOn _x fun a a_4 => PSigma.casesOn a_4 fun a a_5 => (a, 1))
fun _x => PSigma.casesOn _x fun a a_4 => PSigma.casesOn a_4 fun a a_5 => (a_5, 0))
Prod.instWellFoundedRelation).1
y (PSum.inl ⟨a, a_3⟩) →
PSum.casesOn y (fun _x => α) fun _x => PSum.casesOn _x (fun _x => α × α) fun _x => α) →
α)
a_1
(fun a_3 a_4 a_5 =>
(match (motive :=
(x : Nat) →
(x_1 x_2 : α) →
((y : (_ : Nat) ×' (_ : α) ×' α ⊕' (_ : α) ×' (_ : Nat) ×' α ⊕' (_ : α) ×' (_ : α) ×' Nat) →
(invImage
(fun x =>
PSum.casesOn x
(fun _x =>
PSigma.casesOn _x fun a a_6 => PSigma.casesOn a_6 fun a_7 a_8 => (a, 2))
fun _x =>
PSum.casesOn _x
(fun _x =>
PSigma.casesOn _x fun a a_6 => PSigma.casesOn a_6 fun a a_7 => (a, 1))
fun _x =>
PSigma.casesOn _x fun a a_6 => PSigma.casesOn a_6 fun a a_7 => (a_7, 0))
Prod.instWellFoundedRelation).1
y (PSum.inl ⟨x, ⟨x_1, x_2⟩⟩) →
PSum.casesOn y (fun _x => α) fun _x => PSum.casesOn _x (fun _x => α × α) fun _x => α) →
α)
a, a_3, a_4 with
| 0, a, b => fun x => a
| n, a, b => fun x => (x (PSum.inr (PSum.inl ⟨a, ⟨n, b⟩⟩)) ⋯).fst)
a_5)
a_2)
a)
(fun _x a =>
PSum.casesOn (motive := fun _x =>
((y : (_ : Nat) ×' (_ : α) ×' α ⊕' (_ : α) ×' (_ : Nat) ×' α ⊕' (_ : α) ×' (_ : α) ×' Nat) →
(invImage
(fun x =>
PSum.casesOn x
(fun _x => PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a_2 a_3 => (a, 2)) fun _x =>
PSum.casesOn _x
(fun _x => PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a a_2 => (a, 1)) fun _x =>
PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a a_2 => (a_2, 0))
Prod.instWellFoundedRelation).1
y (PSum.inr _x) →
PSum.casesOn y (fun _x => α) fun _x => PSum.casesOn _x (fun _x => α × α) fun _x => α) →
PSum.casesOn (PSum.inr _x) (fun _x => α) fun _x => PSum.casesOn _x (fun _x => α × α) fun _x => α)
_x
(fun _x a =>
PSigma.casesOn (motive := fun _x =>
((y : (_ : Nat) ×' (_ : α) ×' α ⊕' (_ : α) ×' (_ : Nat) ×' α ⊕' (_ : α) ×' (_ : α) ×' Nat) →
(invImage
(fun x =>
PSum.casesOn x
(fun _x => PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a_2 a_3 => (a, 2))
fun _x =>
PSum.casesOn _x
(fun _x => PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a a_2 => (a, 1))
fun _x => PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a a_2 => (a_2, 0))
Prod.instWellFoundedRelation).1
y (PSum.inr (PSum.inl _x)) →
PSum.casesOn y (fun _x => α) fun _x => PSum.casesOn _x (fun _x => α × α) fun _x => α) →
α × α)
_x
(fun a a_1 a_2 =>
PSigma.casesOn (motive := fun a_3 =>
((y : (_ : Nat) ×' (_ : α) ×' α ⊕' (_ : α) ×' (_ : Nat) ×' α ⊕' (_ : α) ×' (_ : α) ×' Nat) →
(invImage
(fun x =>
PSum.casesOn x
(fun _x => PSigma.casesOn _x fun a a_4 => PSigma.casesOn a_4 fun a_5 a_6 => (a, 2))
fun _x =>
PSum.casesOn _x
(fun _x => PSigma.casesOn _x fun a a_4 => PSigma.casesOn a_4 fun a a_5 => (a, 1))
fun _x => PSigma.casesOn _x fun a a_4 => PSigma.casesOn a_4 fun a a_5 => (a_5, 0))
Prod.instWellFoundedRelation).1
y (PSum.inr (PSum.inl ⟨a, a_3⟩)) →
PSum.casesOn y (fun _x => α) fun _x => PSum.casesOn _x (fun _x => α × α) fun _x => α) →
α × α)
a_1
(fun a_3 a_4 a_5 =>
(match (motive :=
(x : α) →
(x_1 : Nat) →
(x_2 : α) →
((y :
(_ : Nat) ×' (_ : α) ×' α ⊕'
(_ : α) ×' (_ : Nat) ×' α ⊕' (_ : α) ×' (_ : α) ×' Nat) →
(invImage
(fun x =>
PSum.casesOn x
(fun _x =>
PSigma.casesOn _x fun a a_6 => PSigma.casesOn a_6 fun a_7 a_8 => (a, 2))
fun _x =>
PSum.casesOn _x
(fun _x =>
PSigma.casesOn _x fun a a_6 => PSigma.casesOn a_6 fun a a_7 => (a, 1))
fun _x =>
PSigma.casesOn _x fun a a_6 => PSigma.casesOn a_6 fun a a_7 => (a_7, 0))
Prod.instWellFoundedRelation).1
y (PSum.inr (PSum.inl ⟨x, ⟨x_1, x_2⟩⟩)) →
PSum.casesOn y (fun _x => α) fun _x =>
PSum.casesOn _x (fun _x => α × α) fun _x => α) →
α × α)
a, a_3, a_4 with
| a, 0, b => fun x => (a, b)
| a, n, b => fun x => (x (PSum.inr (PSum.inr ⟨a, ⟨b, n⟩⟩)) ⋯, a))
a_5)
a_2)
a)
(fun _x a =>
PSigma.casesOn (motive := fun _x =>
((y : (_ : Nat) ×' (_ : α) ×' α ⊕' (_ : α) ×' (_ : Nat) ×' α ⊕' (_ : α) ×' (_ : α) ×' Nat) →
(invImage
(fun x =>
PSum.casesOn x
(fun _x => PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a_2 a_3 => (a, 2))
fun _x =>
PSum.casesOn _x
(fun _x => PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a a_2 => (a, 1))
fun _x => PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a a_2 => (a_2, 0))
Prod.instWellFoundedRelation).1
y (PSum.inr (PSum.inr _x)) →
PSum.casesOn y (fun _x => α) fun _x => PSum.casesOn _x (fun _x => α × α) fun _x => α) →
α)
_x
(fun a a_1 a_2 =>
PSigma.casesOn (motive := fun a_3 =>
((y : (_ : Nat) ×' (_ : α) ×' α ⊕' (_ : α) ×' (_ : Nat) ×' α ⊕' (_ : α) ×' (_ : α) ×' Nat) →
(invImage
(fun x =>
PSum.casesOn x
(fun _x => PSigma.casesOn _x fun a a_4 => PSigma.casesOn a_4 fun a_5 a_6 => (a, 2))
fun _x =>
PSum.casesOn _x
(fun _x => PSigma.casesOn _x fun a a_4 => PSigma.casesOn a_4 fun a a_5 => (a, 1))
fun _x => PSigma.casesOn _x fun a a_4 => PSigma.casesOn a_4 fun a a_5 => (a_5, 0))
Prod.instWellFoundedRelation).1
y (PSum.inr (PSum.inr ⟨a, a_3⟩)) →
PSum.casesOn y (fun _x => α) fun _x => PSum.casesOn _x (fun _x => α × α) fun _x => α) →
α)
a_1
(fun a_3 a_4 a_5 =>
(match (motive :=
(x x_1 : α) →
(x_2 : Nat) →
((y : (_ : Nat) ×' (_ : α) ×' α ⊕' (_ : α) ×' (_ : Nat) ×' α ⊕' (_ : α) ×' (_ : α) ×' Nat) →
(invImage
(fun x =>
PSum.casesOn x
(fun _x =>
PSigma.casesOn _x fun a a_6 => PSigma.casesOn a_6 fun a_7 a_8 => (a, 2))
fun _x =>
PSum.casesOn _x
(fun _x =>
PSigma.casesOn _x fun a a_6 => PSigma.casesOn a_6 fun a a_7 => (a, 1))
fun _x =>
PSigma.casesOn _x fun a a_6 => PSigma.casesOn a_6 fun a a_7 => (a_7, 0))
Prod.instWellFoundedRelation).1
y (PSum.inr (PSum.inr ⟨x, ⟨x_1, x_2⟩⟩)) →
PSum.casesOn y (fun _x => α) fun _x =>
PSum.casesOn _x (fun _x => α × α) fun _x => α) →
α)
a, a_3, a_4 with
| _a, b, 0 => fun x => b
| a, b, n.succ => fun x => x (PSum.inl ⟨n, ⟨a, b⟩⟩) ⋯)
a_5)
a_2)
a)
a)
a
def Ex2.f._mutual.{u_1} : {α : Type u_1} →
(x : (_ : Nat) ×' (_ : α) ×' α ⊕' (_ : α) ×' (_ : Nat) ×' α ⊕' (_ : α) ×' (_ : α) ×' Nat) →
PSum.casesOn x (fun _x => α) fun _x => PSum.casesOn _x (fun _x => α × α) fun _x => α :=
fun {α} =>
⋯.fix fun x a =>
PSum.casesOn (motive := fun x =>
((y : (_ : Nat) ×' (_ : α) ×' α ⊕' (_ : α) ×' (_ : Nat) ×' α ⊕' (_ : α) ×' (_ : α) ×' Nat) →
(invImage
(fun x =>
PSum.casesOn x (fun _x => PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a_2 a_3 => (a, 2))
fun _x =>
PSum.casesOn _x (fun _x => PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a a_2 => (a, 1))
fun _x => PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a a_2 => (a_2, 0))
Prod.instWellFoundedRelation).1
y x →
PSum.casesOn y (fun _x => α) fun _x => PSum.casesOn _x (fun _x => α × α) fun _x => α) →
PSum.casesOn x (fun _x => α) fun _x => PSum.casesOn _x (fun _x => α × α) fun _x => α)
x
(fun _x a =>
PSigma.casesOn (motive := fun _x =>
((y : (_ : Nat) ×' (_ : α) ×' α ⊕' (_ : α) ×' (_ : Nat) ×' α ⊕' (_ : α) ×' (_ : α) ×' Nat) →
(invImage
(fun x =>
PSum.casesOn x
(fun _x => PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a_2 a_3 => (a, 2)) fun _x =>
PSum.casesOn _x
(fun _x => PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a a_2 => (a, 1)) fun _x =>
PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a a_2 => (a_2, 0))
Prod.instWellFoundedRelation).1
y (PSum.inl _x) →
PSum.casesOn y (fun _x => α) fun _x => PSum.casesOn _x (fun _x => α × α) fun _x => α) →
α)
_x
(fun a a_1 a_2 =>
PSigma.casesOn (motive := fun a_3 =>
((y : (_ : Nat) ×' (_ : α) ×' α ⊕' (_ : α) ×' (_ : Nat) ×' α ⊕' (_ : α) ×' (_ : α) ×' Nat) →
(invImage
(fun x =>
PSum.casesOn x
(fun _x => PSigma.casesOn _x fun a a_4 => PSigma.casesOn a_4 fun a_5 a_6 => (a, 2))
fun _x =>
PSum.casesOn _x
(fun _x => PSigma.casesOn _x fun a a_4 => PSigma.casesOn a_4 fun a a_5 => (a, 1))
fun _x => PSigma.casesOn _x fun a a_4 => PSigma.casesOn a_4 fun a a_5 => (a_5, 0))
Prod.instWellFoundedRelation).1
y (PSum.inl ⟨a, a_3⟩) →
PSum.casesOn y (fun _x => α) fun _x => PSum.casesOn _x (fun _x => α × α) fun _x => α) →
α)
a_1
(fun a_3 a_4 a_5 =>
(match (motive :=
(x : Nat) →
(x_1 x_2 : α) →
((y : (_ : Nat) ×' (_ : α) ×' α ⊕' (_ : α) ×' (_ : Nat) ×' α ⊕' (_ : α) ×' (_ : α) ×' Nat) →
(invImage
(fun x =>
PSum.casesOn x
(fun _x =>
PSigma.casesOn _x fun a a_6 => PSigma.casesOn a_6 fun a_7 a_8 => (a, 2))
fun _x =>
PSum.casesOn _x
(fun _x =>
PSigma.casesOn _x fun a a_6 => PSigma.casesOn a_6 fun a a_7 => (a, 1))
fun _x =>
PSigma.casesOn _x fun a a_6 => PSigma.casesOn a_6 fun a a_7 => (a_7, 0))
Prod.instWellFoundedRelation).1
y (PSum.inl ⟨x, ⟨x_1, x_2⟩⟩) →
PSum.casesOn y (fun _x => α) fun _x => PSum.casesOn _x (fun _x => α × α) fun _x => α) →
α)
a, a_3, a_4 with
| 0, a, b => fun x => a
| n, a, b => fun x => (x (PSum.inr (PSum.inl ⟨a, ⟨n, b⟩⟩)) ⋯).fst)
a_5)
a_2)
a)
(fun _x a =>
PSum.casesOn (motive := fun _x =>
((y : (_ : Nat) ×' (_ : α) ×' α ⊕' (_ : α) ×' (_ : Nat) ×' α ⊕' (_ : α) ×' (_ : α) ×' Nat) →
(invImage
(fun x =>
PSum.casesOn x
(fun _x => PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a_2 a_3 => (a, 2)) fun _x =>
PSum.casesOn _x
(fun _x => PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a a_2 => (a, 1)) fun _x =>
PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a a_2 => (a_2, 0))
Prod.instWellFoundedRelation).1
y (PSum.inr _x) →
PSum.casesOn y (fun _x => α) fun _x => PSum.casesOn _x (fun _x => α × α) fun _x => α) →
PSum.casesOn (PSum.inr _x) (fun _x => α) fun _x => PSum.casesOn _x (fun _x => α × α) fun _x => α)
_x
(fun _x a =>
PSigma.casesOn (motive := fun _x =>
((y : (_ : Nat) ×' (_ : α) ×' α ⊕' (_ : α) ×' (_ : Nat) ×' α ⊕' (_ : α) ×' (_ : α) ×' Nat) →
(invImage
(fun x =>
PSum.casesOn x
(fun _x => PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a_2 a_3 => (a, 2))
fun _x =>
PSum.casesOn _x
(fun _x => PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a a_2 => (a, 1))
fun _x => PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a a_2 => (a_2, 0))
Prod.instWellFoundedRelation).1
y (PSum.inr (PSum.inl _x)) →
PSum.casesOn y (fun _x => α) fun _x => PSum.casesOn _x (fun _x => α × α) fun _x => α) →
α × α)
_x
(fun a a_1 a_2 =>
PSigma.casesOn (motive := fun a_3 =>
((y : (_ : Nat) ×' (_ : α) ×' α ⊕' (_ : α) ×' (_ : Nat) ×' α ⊕' (_ : α) ×' (_ : α) ×' Nat) →
(invImage
(fun x =>
PSum.casesOn x
(fun _x => PSigma.casesOn _x fun a a_4 => PSigma.casesOn a_4 fun a_5 a_6 => (a, 2))
fun _x =>
PSum.casesOn _x
(fun _x => PSigma.casesOn _x fun a a_4 => PSigma.casesOn a_4 fun a a_5 => (a, 1))
fun _x => PSigma.casesOn _x fun a a_4 => PSigma.casesOn a_4 fun a a_5 => (a_5, 0))
Prod.instWellFoundedRelation).1
y (PSum.inr (PSum.inl ⟨a, a_3⟩)) →
PSum.casesOn y (fun _x => α) fun _x => PSum.casesOn _x (fun _x => α × α) fun _x => α) →
α × α)
a_1
(fun a_3 a_4 a_5 =>
(match (motive :=
(x : α) →
(x_1 : Nat) →
(x_2 : α) →
((y :
(_ : Nat) ×' (_ : α) ×' α ⊕'
(_ : α) ×' (_ : Nat) ×' α ⊕' (_ : α) ×' (_ : α) ×' Nat) →
(invImage
(fun x =>
PSum.casesOn x
(fun _x =>
PSigma.casesOn _x fun a a_6 => PSigma.casesOn a_6 fun a_7 a_8 => (a, 2))
fun _x =>
PSum.casesOn _x
(fun _x =>
PSigma.casesOn _x fun a a_6 => PSigma.casesOn a_6 fun a a_7 => (a, 1))
fun _x =>
PSigma.casesOn _x fun a a_6 => PSigma.casesOn a_6 fun a a_7 => (a_7, 0))
Prod.instWellFoundedRelation).1
y (PSum.inr (PSum.inl ⟨x, ⟨x_1, x_2⟩⟩)) →
PSum.casesOn y (fun _x => α) fun _x =>
PSum.casesOn _x (fun _x => α × α) fun _x => α) →
α × α)
a, a_3, a_4 with
| a, 0, b => fun x => (a, b)
| a, n, b => fun x => (x (PSum.inr (PSum.inr ⟨a, ⟨b, n⟩⟩)) ⋯, a))
a_5)
a_2)
a)
(fun _x a =>
PSigma.casesOn (motive := fun _x =>
((y : (_ : Nat) ×' (_ : α) ×' α ⊕' (_ : α) ×' (_ : Nat) ×' α ⊕' (_ : α) ×' (_ : α) ×' Nat) →
(invImage
(fun x =>
PSum.casesOn x
(fun _x => PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a_2 a_3 => (a, 2))
fun _x =>
PSum.casesOn _x
(fun _x => PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a a_2 => (a, 1))
fun _x => PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a a_2 => (a_2, 0))
Prod.instWellFoundedRelation).1
y (PSum.inr (PSum.inr _x)) →
PSum.casesOn y (fun _x => α) fun _x => PSum.casesOn _x (fun _x => α × α) fun _x => α) →
α)
_x
(fun a a_1 a_2 =>
PSigma.casesOn (motive := fun a_3 =>
((y : (_ : Nat) ×' (_ : α) ×' α ⊕' (_ : α) ×' (_ : Nat) ×' α ⊕' (_ : α) ×' (_ : α) ×' Nat) →
(invImage
(fun x =>
PSum.casesOn x
(fun _x => PSigma.casesOn _x fun a a_4 => PSigma.casesOn a_4 fun a_5 a_6 => (a, 2))
fun _x =>
PSum.casesOn _x
(fun _x => PSigma.casesOn _x fun a a_4 => PSigma.casesOn a_4 fun a a_5 => (a, 1))
fun _x => PSigma.casesOn _x fun a a_4 => PSigma.casesOn a_4 fun a a_5 => (a_5, 0))
Prod.instWellFoundedRelation).1
y (PSum.inr (PSum.inr ⟨a, a_3⟩)) →
PSum.casesOn y (fun _x => α) fun _x => PSum.casesOn _x (fun _x => α × α) fun _x => α) →
α)
a_1
(fun a_3 a_4 a_5 =>
(match (motive :=
(x x_1 : α) →
(x_2 : Nat) →
((y : (_ : Nat) ×' (_ : α) ×' α ⊕' (_ : α) ×' (_ : Nat) ×' α ⊕' (_ : α) ×' (_ : α) ×' Nat) →
(invImage
(fun x =>
PSum.casesOn x
(fun _x =>
PSigma.casesOn _x fun a a_6 => PSigma.casesOn a_6 fun a_7 a_8 => (a, 2))
fun _x =>
PSum.casesOn _x
(fun _x =>
PSigma.casesOn _x fun a a_6 => PSigma.casesOn a_6 fun a a_7 => (a, 1))
fun _x =>
PSigma.casesOn _x fun a a_6 => PSigma.casesOn a_6 fun a a_7 => (a_7, 0))
Prod.instWellFoundedRelation).1
y (PSum.inr (PSum.inr ⟨x, ⟨x_1, x_2⟩⟩)) →
PSum.casesOn y (fun _x => α) fun _x =>
PSum.casesOn _x (fun _x => α × α) fun _x => α) →
α)
a, a_3, a_4 with
| a, b, 0 => fun x => b
| a, b, n.succ => fun x => x (PSum.inl ⟨n, ⟨a, b⟩⟩) ⋯)
a_5)
a_2)
a)
a)
a
def Ex3.f._mutual.{u_1} : {α : Type u_1} →
(x : (_ : Nat) ×' (_ : α) ×' α ⊕' (_ : α) ×' (_ : Nat) ×' α ⊕' (_ : α) ×' (_ : α) ×' Nat) →
PSum.casesOn x (fun _x => α) fun _x => PSum.casesOn _x (fun _x => α × α) fun _x => α :=
fun {α} =>
⋯.fix fun x a =>
PSum.casesOn (motive := fun x =>
((y : (_ : Nat) ×' (_ : α) ×' α ⊕' (_ : α) ×' (_ : Nat) ×' α ⊕' (_ : α) ×' (_ : α) ×' Nat) →
(invImage
(fun x =>
PSum.casesOn x
(fun _x => PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a_2 a_3 => (a, 1, 0)) fun _x =>
PSum.casesOn _x
(fun _x => PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a a_2 => (a, 0, 1)) fun _x =>
PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a a_2 => (a_2, 0, 0))
Prod.instWellFoundedRelation).1
y x →
PSum.casesOn y (fun _x => α) fun _x => PSum.casesOn _x (fun _x => α × α) fun _x => α) →
PSum.casesOn x (fun _x => α) fun _x => PSum.casesOn _x (fun _x => α × α) fun _x => α)
x
(fun _x a =>
PSigma.casesOn (motive := fun _x =>
((y : (_ : Nat) ×' (_ : α) ×' α ⊕' (_ : α) ×' (_ : Nat) ×' α ⊕' (_ : α) ×' (_ : α) ×' Nat) →
(invImage
(fun x =>
PSum.casesOn x
(fun _x => PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a_2 a_3 => (a, 1, 0))
fun _x =>
PSum.casesOn _x
(fun _x => PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a a_2 => (a, 0, 1))
fun _x => PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a a_2 => (a_2, 0, 0))
Prod.instWellFoundedRelation).1
y (PSum.inl _x) →
PSum.casesOn y (fun _x => α) fun _x => PSum.casesOn _x (fun _x => α × α) fun _x => α) →
α)
_x
(fun a a_1 a_2 =>
PSigma.casesOn (motive := fun a_3 =>
((y : (_ : Nat) ×' (_ : α) ×' α ⊕' (_ : α) ×' (_ : Nat) ×' α ⊕' (_ : α) ×' (_ : α) ×' Nat) →
(invImage
(fun x =>
PSum.casesOn x
(fun _x => PSigma.casesOn _x fun a a_4 => PSigma.casesOn a_4 fun a_5 a_6 => (a, 1, 0))
fun _x =>
PSum.casesOn _x
(fun _x => PSigma.casesOn _x fun a a_4 => PSigma.casesOn a_4 fun a a_5 => (a, 0, 1))
fun _x => PSigma.casesOn _x fun a a_4 => PSigma.casesOn a_4 fun a a_5 => (a_5, 0, 0))
Prod.instWellFoundedRelation).1
y (PSum.inl ⟨a, a_3⟩) →
PSum.casesOn y (fun _x => α) fun _x => PSum.casesOn _x (fun _x => α × α) fun _x => α) →
α)
a_1
(fun a_3 a_4 a_5 =>
(match (motive :=
(x : Nat) →
(x_1 x_2 : α) →
((y : (_ : Nat) ×' (_ : α) ×' α ⊕' (_ : α) ×' (_ : Nat) ×' α ⊕' (_ : α) ×' (_ : α) ×' Nat) →
(invImage
(fun x =>
PSum.casesOn x
(fun _x =>
PSigma.casesOn _x fun a a_6 => PSigma.casesOn a_6 fun a_7 a_8 => (a, 1, 0))
fun _x =>
PSum.casesOn _x
(fun _x =>
PSigma.casesOn _x fun a a_6 => PSigma.casesOn a_6 fun a a_7 => (a, 0, 1))
fun _x =>
PSigma.casesOn _x fun a a_6 => PSigma.casesOn a_6 fun a a_7 => (a_7, 0, 0))
Prod.instWellFoundedRelation).1
y (PSum.inl ⟨x, ⟨x_1, x_2⟩⟩) →
PSum.casesOn y (fun _x => α) fun _x => PSum.casesOn _x (fun _x => α × α) fun _x => α) →
α)
a, a_3, a_4 with
| 0, a, b => fun x => a
| n, a, b => fun x => (x (PSum.inr (PSum.inl ⟨a, ⟨n, b⟩⟩)) ⋯).fst)
a_5)
a_2)
a)
(fun _x a =>
PSum.casesOn (motive := fun _x =>
((y : (_ : Nat) ×' (_ : α) ×' α ⊕' (_ : α) ×' (_ : Nat) ×' α ⊕' (_ : α) ×' (_ : α) ×' Nat) →
(invImage
(fun x =>
PSum.casesOn x
(fun _x => PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a_2 a_3 => (a, 1, 0))
fun _x =>
PSum.casesOn _x
(fun _x => PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a a_2 => (a, 0, 1))
fun _x => PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a a_2 => (a_2, 0, 0))
Prod.instWellFoundedRelation).1
y (PSum.inr _x) →
PSum.casesOn y (fun _x => α) fun _x => PSum.casesOn _x (fun _x => α × α) fun _x => α) →
PSum.casesOn (PSum.inr _x) (fun _x => α) fun _x => PSum.casesOn _x (fun _x => α × α) fun _x => α)
_x
(fun _x a =>
PSigma.casesOn (motive := fun _x =>
((y : (_ : Nat) ×' (_ : α) ×' α ⊕' (_ : α) ×' (_ : Nat) ×' α ⊕' (_ : α) ×' (_ : α) ×' Nat) →
(invImage
(fun x =>
PSum.casesOn x
(fun _x => PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a_2 a_3 => (a, 1, 0))
fun _x =>
PSum.casesOn _x
(fun _x => PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a a_2 => (a, 0, 1))
fun _x => PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a a_2 => (a_2, 0, 0))
Prod.instWellFoundedRelation).1
y (PSum.inr (PSum.inl _x)) →
PSum.casesOn y (fun _x => α) fun _x => PSum.casesOn _x (fun _x => α × α) fun _x => α) →
α × α)
_x
(fun a a_1 a_2 =>
PSigma.casesOn (motive := fun a_3 =>
((y : (_ : Nat) ×' (_ : α) ×' α ⊕' (_ : α) ×' (_ : Nat) ×' α ⊕' (_ : α) ×' (_ : α) ×' Nat) →
(invImage
(fun x =>
PSum.casesOn x
(fun _x => PSigma.casesOn _x fun a a_4 => PSigma.casesOn a_4 fun a_5 a_6 => (a, 1, 0))
fun _x =>
PSum.casesOn _x
(fun _x => PSigma.casesOn _x fun a a_4 => PSigma.casesOn a_4 fun a a_5 => (a, 0, 1))
fun _x =>
PSigma.casesOn _x fun a a_4 => PSigma.casesOn a_4 fun a a_5 => (a_5, 0, 0))
Prod.instWellFoundedRelation).1
y (PSum.inr (PSum.inl ⟨a, a_3⟩)) →
PSum.casesOn y (fun _x => α) fun _x => PSum.casesOn _x (fun _x => α × α) fun _x => α) →
α × α)
a_1
(fun a_3 a_4 a_5 =>
(match (motive :=
(x : α) →
(x_1 : Nat) →
(x_2 : α) →
((y :
(_ : Nat) ×' (_ : α) ×' α ⊕'
(_ : α) ×' (_ : Nat) ×' α ⊕' (_ : α) ×' (_ : α) ×' Nat) →
(invImage
(fun x =>
PSum.casesOn x
(fun _x =>
PSigma.casesOn _x fun a a_6 =>
PSigma.casesOn a_6 fun a_7 a_8 => (a, 1, 0))
fun _x =>
PSum.casesOn _x
(fun _x =>
PSigma.casesOn _x fun a a_6 =>
PSigma.casesOn a_6 fun a a_7 => (a, 0, 1))
fun _x =>
PSigma.casesOn _x fun a a_6 =>
PSigma.casesOn a_6 fun a a_7 => (a_7, 0, 0))
Prod.instWellFoundedRelation).1
y (PSum.inr (PSum.inl ⟨x, ⟨x_1, x_2⟩⟩)) →
PSum.casesOn y (fun _x => α) fun _x =>
PSum.casesOn _x (fun _x => α × α) fun _x => α) →
α × α)
a, a_3, a_4 with
| a, 0, b => fun x => (a, b)
| a, n, b => fun x => (x (PSum.inr (PSum.inr ⟨a, ⟨b, n⟩⟩)) ⋯, a))
a_5)
a_2)
a)
(fun _x a =>
PSigma.casesOn (motive := fun _x =>
((y : (_ : Nat) ×' (_ : α) ×' α ⊕' (_ : α) ×' (_ : Nat) ×' α ⊕' (_ : α) ×' (_ : α) ×' Nat) →
(invImage
(fun x =>
PSum.casesOn x
(fun _x => PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a_2 a_3 => (a, 1, 0))
fun _x =>
PSum.casesOn _x
(fun _x => PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a a_2 => (a, 0, 1))
fun _x => PSigma.casesOn _x fun a a_1 => PSigma.casesOn a_1 fun a a_2 => (a_2, 0, 0))
Prod.instWellFoundedRelation).1
y (PSum.inr (PSum.inr _x)) →
PSum.casesOn y (fun _x => α) fun _x => PSum.casesOn _x (fun _x => α × α) fun _x => α) →
α)
_x
(fun a a_1 a_2 =>
PSigma.casesOn (motive := fun a_3 =>
((y : (_ : Nat) ×' (_ : α) ×' α ⊕' (_ : α) ×' (_ : Nat) ×' α ⊕' (_ : α) ×' (_ : α) ×' Nat) →
(invImage
(fun x =>
PSum.casesOn x
(fun _x => PSigma.casesOn _x fun a a_4 => PSigma.casesOn a_4 fun a_5 a_6 => (a, 1, 0))
fun _x =>
PSum.casesOn _x
(fun _x => PSigma.casesOn _x fun a a_4 => PSigma.casesOn a_4 fun a a_5 => (a, 0, 1))
fun _x =>
PSigma.casesOn _x fun a a_4 => PSigma.casesOn a_4 fun a a_5 => (a_5, 0, 0))
Prod.instWellFoundedRelation).1
y (PSum.inr (PSum.inr ⟨a, a_3⟩)) →
PSum.casesOn y (fun _x => α) fun _x => PSum.casesOn _x (fun _x => α × α) fun _x => α) →
α)
a_1
(fun a_3 a_4 a_5 =>
(match (motive :=
(x x_1 : α) →
(x_2 : Nat) →
((y : (_ : Nat) ×' (_ : α) ×' α ⊕' (_ : α) ×' (_ : Nat) ×' α ⊕' (_ : α) ×' (_ : α) ×' Nat) →
(invImage
(fun x =>
PSum.casesOn x
(fun _x =>
PSigma.casesOn _x fun a a_6 =>
PSigma.casesOn a_6 fun a_7 a_8 => (a, 1, 0))
fun _x =>
PSum.casesOn _x
(fun _x =>
PSigma.casesOn _x fun a a_6 =>
PSigma.casesOn a_6 fun a a_7 => (a, 0, 1))
fun _x =>
PSigma.casesOn _x fun a a_6 =>
PSigma.casesOn a_6 fun a a_7 => (a_7, 0, 0))
Prod.instWellFoundedRelation).1
y (PSum.inr (PSum.inr ⟨x, ⟨x_1, x_2⟩⟩)) →
PSum.casesOn y (fun _x => α) fun _x =>
PSum.casesOn _x (fun _x => α × α) fun _x => α) →
α)
a, a_3, a_4 with
| a, b, 0 => fun x => b
| a, b, n.succ => fun x => x (PSum.inl ⟨n, ⟨a, b⟩⟩) ⋯)
a_5)
a_2)
a)
a)
a