Skip to content
import JaxLean.Stdlib
import examples.tensor_puzzles.generated.PuzzlesTriuset_option maxRecDepth 4096set_option maxHeartbeats 2000000namespace JaxLean.Puzzles.Triutheorem matches_loop :
Array.triu (R := ℝ) = Loop.triu (R := ℝ) := ⊢ Array.triu = Loop.triu
i:Fin 3j:Fin 3u:Index []⊢ Array.triu (i, j, u) = Loop.triu (i, j, u)
i:Fin 3j:Fin 3⊢ Array.triu (i, j, PUnit.unit) = Loop.triu (i, j, PUnit.unit)
j:Fin 3⊢ Array.triu ((fun i => i) ⟨0, ⋯⟩, j, PUnit.unit) = Loop.triu ((fun i => i) ⟨0, ⋯⟩, j, PUnit.unit)j:Fin 3⊢ Array.triu ((fun i => i) ⟨1, ⋯⟩, j, PUnit.unit) = Loop.triu ((fun i => i) ⟨1, ⋯⟩, j, PUnit.unit)j:Fin 3⊢ Array.triu ((fun i => i) ⟨2, ⋯⟩, j, PUnit.unit) = Loop.triu ((fun i => i) ⟨2, ⋯⟩, j, PUnit.unit) j:Fin 3⊢ Array.triu ((fun i => i) ⟨0, ⋯⟩, j, PUnit.unit) = Loop.triu ((fun i => i) ⟨0, ⋯⟩, j, PUnit.unit)j:Fin 3⊢ Array.triu ((fun i => i) ⟨1, ⋯⟩, j, PUnit.unit) = Loop.triu ((fun i => i) ⟨1, ⋯⟩, j, PUnit.unit)j:Fin 3⊢ Array.triu ((fun i => i) ⟨2, ⋯⟩, j, PUnit.unit) = Loop.triu ((fun i => i) ⟨2, ⋯⟩, j, PUnit.unit) ⊢ Array.triu ((fun i => i) ⟨2, ⋯⟩, (fun i => i) ⟨0, ⋯⟩, PUnit.unit) =
Loop.triu ((fun i => i) ⟨2, ⋯⟩, (fun i => i) ⟨0, ⋯⟩, PUnit.unit)⊢ Array.triu ((fun i => i) ⟨2, ⋯⟩, (fun i => i) ⟨1, ⋯⟩, PUnit.unit) =
Loop.triu ((fun i => i) ⟨2, ⋯⟩, (fun i => i) ⟨1, ⋯⟩, PUnit.unit)⊢ Array.triu ((fun i => i) ⟨2, ⋯⟩, (fun i => i) ⟨2, ⋯⟩, PUnit.unit) =
Loop.triu ((fun i => i) ⟨2, ⋯⟩, (fun i => i) ⟨2, ⋯⟩, PUnit.unit) ⊢ Array.triu ((fun i => i) ⟨0, ⋯⟩, (fun i => i) ⟨0, ⋯⟩, PUnit.unit) =
Loop.triu ((fun i => i) ⟨0, ⋯⟩, (fun i => i) ⟨0, ⋯⟩, PUnit.unit)⊢ Array.triu ((fun i => i) ⟨0, ⋯⟩, (fun i => i) ⟨1, ⋯⟩, PUnit.unit) =
Loop.triu ((fun i => i) ⟨0, ⋯⟩, (fun i => i) ⟨1, ⋯⟩, PUnit.unit)⊢ Array.triu ((fun i => i) ⟨0, ⋯⟩, (fun i => i) ⟨2, ⋯⟩, PUnit.unit) =
Loop.triu ((fun i => i) ⟨0, ⋯⟩, (fun i => i) ⟨2, ⋯⟩, PUnit.unit)⊢ Array.triu ((fun i => i) ⟨1, ⋯⟩, (fun i => i) ⟨0, ⋯⟩, PUnit.unit) =
Loop.triu ((fun i => i) ⟨1, ⋯⟩, (fun i => i) ⟨0, ⋯⟩, PUnit.unit)⊢ Array.triu ((fun i => i) ⟨1, ⋯⟩, (fun i => i) ⟨1, ⋯⟩, PUnit.unit) =
Loop.triu ((fun i => i) ⟨1, ⋯⟩, (fun i => i) ⟨1, ⋯⟩, PUnit.unit)⊢ Array.triu ((fun i => i) ⟨1, ⋯⟩, (fun i => i) ⟨2, ⋯⟩, PUnit.unit) =
Loop.triu ((fun i => i) ⟨1, ⋯⟩, (fun i => i) ⟨2, ⋯⟩, PUnit.unit)⊢ Array.triu ((fun i => i) ⟨2, ⋯⟩, (fun i => i) ⟨0, ⋯⟩, PUnit.unit) =
Loop.triu ((fun i => i) ⟨2, ⋯⟩, (fun i => i) ⟨0, ⋯⟩, PUnit.unit)⊢ Array.triu ((fun i => i) ⟨2, ⋯⟩, (fun i => i) ⟨1, ⋯⟩, PUnit.unit) =
Loop.triu ((fun i => i) ⟨2, ⋯⟩, (fun i => i) ⟨1, ⋯⟩, PUnit.unit)⊢ Array.triu ((fun i => i) ⟨2, ⋯⟩, (fun i => i) ⟨2, ⋯⟩, PUnit.unit) =
Loop.triu ((fun i => i) ⟨2, ⋯⟩, (fun i => i) ⟨2, ⋯⟩, PUnit.unit)
⊢ (if decide (↑2 ≤ ↑2) = true then 1 else 0) =
if ⟨2, ⋯⟩ = 2 ∧ ⟨2, ⋯⟩ = 2 then 1
else
if ⟨2, ⋯⟩ = 1 ∧ ⟨2, ⋯⟩ = 2 then 1
else
if ⟨2, ⋯⟩ = 1 ∧ ⟨2, ⋯⟩ = 1 then 1
else
if ⟨2, ⋯⟩ = 0 ∧ ⟨2, ⋯⟩ = 2 then 1
else if ⟨2, ⋯⟩ = 0 ∧ ⟨2, ⋯⟩ = 1 then 1 else if ⟨2, ⋯⟩ = 0 ∧ ⟨2, ⋯⟩ = 0 then 1 else 0
all_goals All goals completed! 🐙⊢ Array.triu = Loop.triu
exact matches_loopAll goals completed! 🐙end JaxLean.Puzzles.Triu