Skip to content
import JaxLean.Stdlib
import examples.tensor_puzzles.generated.PuzzlesVstackset_option maxRecDepth 4096set_option maxHeartbeats 2000000namespace JaxLean.Puzzles.Vstacktheorem matches_loop (a : Tensor ℝ [3]) (b : Tensor ℝ [3]) :
Array.vstack a b = Loop.vstack a b := a:Tensor ℝ [3]b:Tensor ℝ [3]⊢ Array.vstack a b = Loop.vstack a b
a:Tensor ℝ [3]b:Tensor ℝ [3]i:Fin 2j:Fin 3u:Index []⊢ Array.vstack a b (i, j, u) = Loop.vstack a b (i, j, u)
a:Tensor ℝ [3]b:Tensor ℝ [3]i:Fin 2j:Fin 3⊢ Array.vstack a b (i, j, PUnit.unit) = Loop.vstack a b (i, j, PUnit.unit)
a:Tensor ℝ [3]b:Tensor ℝ [3]j:Fin 3⊢ Array.vstack a b ((fun i => i) ⟨0, ⋯⟩, j, PUnit.unit) = Loop.vstack a b ((fun i => i) ⟨0, ⋯⟩, j, PUnit.unit)a:Tensor ℝ [3]b:Tensor ℝ [3]j:Fin 3⊢ Array.vstack a b ((fun i => i) ⟨1, ⋯⟩, j, PUnit.unit) = Loop.vstack a b ((fun i => i) ⟨1, ⋯⟩, j, PUnit.unit) a:Tensor ℝ [3]b:Tensor ℝ [3]j:Fin 3⊢ Array.vstack a b ((fun i => i) ⟨0, ⋯⟩, j, PUnit.unit) = Loop.vstack a b ((fun i => i) ⟨0, ⋯⟩, j, PUnit.unit)a:Tensor ℝ [3]b:Tensor ℝ [3]j:Fin 3⊢ Array.vstack a b ((fun i => i) ⟨1, ⋯⟩, j, PUnit.unit) = Loop.vstack a b ((fun i => i) ⟨1, ⋯⟩, j, PUnit.unit) a:Tensor ℝ [3]b:Tensor ℝ [3]⊢ Array.vstack a b ((fun i => i) ⟨1, ⋯⟩, (fun i => i) ⟨0, ⋯⟩, PUnit.unit) =
Loop.vstack a b ((fun i => i) ⟨1, ⋯⟩, (fun i => i) ⟨0, ⋯⟩, PUnit.unit)a:Tensor ℝ [3]b:Tensor ℝ [3]⊢ Array.vstack a b ((fun i => i) ⟨1, ⋯⟩, (fun i => i) ⟨1, ⋯⟩, PUnit.unit) =
Loop.vstack a b ((fun i => i) ⟨1, ⋯⟩, (fun i => i) ⟨1, ⋯⟩, PUnit.unit)a:Tensor ℝ [3]b:Tensor ℝ [3]⊢ Array.vstack a b ((fun i => i) ⟨1, ⋯⟩, (fun i => i) ⟨2, ⋯⟩, PUnit.unit) =
Loop.vstack a b ((fun i => i) ⟨1, ⋯⟩, (fun i => i) ⟨2, ⋯⟩, PUnit.unit) a:Tensor ℝ [3]b:Tensor ℝ [3]⊢ Array.vstack a b ((fun i => i) ⟨0, ⋯⟩, (fun i => i) ⟨0, ⋯⟩, PUnit.unit) =
Loop.vstack a b ((fun i => i) ⟨0, ⋯⟩, (fun i => i) ⟨0, ⋯⟩, PUnit.unit)a:Tensor ℝ [3]b:Tensor ℝ [3]⊢ Array.vstack a b ((fun i => i) ⟨0, ⋯⟩, (fun i => i) ⟨1, ⋯⟩, PUnit.unit) =
Loop.vstack a b ((fun i => i) ⟨0, ⋯⟩, (fun i => i) ⟨1, ⋯⟩, PUnit.unit)a:Tensor ℝ [3]b:Tensor ℝ [3]⊢ Array.vstack a b ((fun i => i) ⟨0, ⋯⟩, (fun i => i) ⟨2, ⋯⟩, PUnit.unit) =
Loop.vstack a b ((fun i => i) ⟨0, ⋯⟩, (fun i => i) ⟨2, ⋯⟩, PUnit.unit)a:Tensor ℝ [3]b:Tensor ℝ [3]⊢ Array.vstack a b ((fun i => i) ⟨1, ⋯⟩, (fun i => i) ⟨0, ⋯⟩, PUnit.unit) =
Loop.vstack a b ((fun i => i) ⟨1, ⋯⟩, (fun i => i) ⟨0, ⋯⟩, PUnit.unit)a:Tensor ℝ [3]b:Tensor ℝ [3]⊢ Array.vstack a b ((fun i => i) ⟨1, ⋯⟩, (fun i => i) ⟨1, ⋯⟩, PUnit.unit) =
Loop.vstack a b ((fun i => i) ⟨1, ⋯⟩, (fun i => i) ⟨1, ⋯⟩, PUnit.unit)a:Tensor ℝ [3]b:Tensor ℝ [3]⊢ Array.vstack a b ((fun i => i) ⟨1, ⋯⟩, (fun i => i) ⟨2, ⋯⟩, PUnit.unit) =
Loop.vstack a b ((fun i => i) ⟨1, ⋯⟩, (fun i => i) ⟨2, ⋯⟩, PUnit.unit) All goals completed! 🐙a:Tensor ℝ [3]b:Tensor ℝ [3]⊢ Array.vstack a b = Loop.vstack a b
exact matches_loop a bAll goals completed! 🐙end JaxLean.Puzzles.Vstack