Skip to content
import JaxLean.Stdlib
import examples.tensor_puzzles.generated.PuzzlesSequenceMaskset_option maxRecDepth 4096set_option maxHeartbeats 2000000namespace JaxLean.Puzzles.SequenceMasktheorem matches_loop (values : Tensor ℝ [2, 3]) (length : Tensor Int32 [2]) :
Array.sequence_mask values length = Loop.sequence_mask values length := values:Tensor ℝ [2, 3]length:Tensor Int32 [2]⊢ Array.sequence_mask values length = Loop.sequence_mask values length
values:Tensor ℝ [2, 3]length:Tensor Int32 [2]i:Fin 2j:Fin 3u:Index []⊢ Array.sequence_mask values length (i, j, u) = Loop.sequence_mask values length (i, j, u)
values:Tensor ℝ [2, 3]length:Tensor Int32 [2]i:Fin 2j:Fin 3⊢ Array.sequence_mask values length (i, j, PUnit.unit) = Loop.sequence_mask values length (i, j, PUnit.unit)
values:Tensor ℝ [2, 3]length:Tensor Int32 [2]j:Fin 3⊢ Array.sequence_mask values length ((fun i => i) ⟨0, ⋯⟩, j, PUnit.unit) =
Loop.sequence_mask values length ((fun i => i) ⟨0, ⋯⟩, j, PUnit.unit)values:Tensor ℝ [2, 3]length:Tensor Int32 [2]j:Fin 3⊢ Array.sequence_mask values length ((fun i => i) ⟨1, ⋯⟩, j, PUnit.unit) =
Loop.sequence_mask values length ((fun i => i) ⟨1, ⋯⟩, j, PUnit.unit) values:Tensor ℝ [2, 3]length:Tensor Int32 [2]j:Fin 3⊢ Array.sequence_mask values length ((fun i => i) ⟨0, ⋯⟩, j, PUnit.unit) =
Loop.sequence_mask values length ((fun i => i) ⟨0, ⋯⟩, j, PUnit.unit)values:Tensor ℝ [2, 3]length:Tensor Int32 [2]j:Fin 3⊢ Array.sequence_mask values length ((fun i => i) ⟨1, ⋯⟩, j, PUnit.unit) =
Loop.sequence_mask values length ((fun i => i) ⟨1, ⋯⟩, j, PUnit.unit) values:Tensor ℝ [2, 3]length:Tensor Int32 [2]⊢ Array.sequence_mask values length ((fun i => i) ⟨1, ⋯⟩, (fun i => i) ⟨0, ⋯⟩, PUnit.unit) =
Loop.sequence_mask values length ((fun i => i) ⟨1, ⋯⟩, (fun i => i) ⟨0, ⋯⟩, PUnit.unit)values:Tensor ℝ [2, 3]length:Tensor Int32 [2]⊢ Array.sequence_mask values length ((fun i => i) ⟨1, ⋯⟩, (fun i => i) ⟨1, ⋯⟩, PUnit.unit) =
Loop.sequence_mask values length ((fun i => i) ⟨1, ⋯⟩, (fun i => i) ⟨1, ⋯⟩, PUnit.unit)values:Tensor ℝ [2, 3]length:Tensor Int32 [2]⊢ Array.sequence_mask values length ((fun i => i) ⟨1, ⋯⟩, (fun i => i) ⟨2, ⋯⟩, PUnit.unit) =
Loop.sequence_mask values length ((fun i => i) ⟨1, ⋯⟩, (fun i => i) ⟨2, ⋯⟩, PUnit.unit) values:Tensor ℝ [2, 3]length:Tensor Int32 [2]⊢ Array.sequence_mask values length ((fun i => i) ⟨0, ⋯⟩, (fun i => i) ⟨0, ⋯⟩, PUnit.unit) =
Loop.sequence_mask values length ((fun i => i) ⟨0, ⋯⟩, (fun i => i) ⟨0, ⋯⟩, PUnit.unit)values:Tensor ℝ [2, 3]length:Tensor Int32 [2]⊢ Array.sequence_mask values length ((fun i => i) ⟨0, ⋯⟩, (fun i => i) ⟨1, ⋯⟩, PUnit.unit) =
Loop.sequence_mask values length ((fun i => i) ⟨0, ⋯⟩, (fun i => i) ⟨1, ⋯⟩, PUnit.unit)values:Tensor ℝ [2, 3]length:Tensor Int32 [2]⊢ Array.sequence_mask values length ((fun i => i) ⟨0, ⋯⟩, (fun i => i) ⟨2, ⋯⟩, PUnit.unit) =
Loop.sequence_mask values length ((fun i => i) ⟨0, ⋯⟩, (fun i => i) ⟨2, ⋯⟩, PUnit.unit)values:Tensor ℝ [2, 3]length:Tensor Int32 [2]⊢ Array.sequence_mask values length ((fun i => i) ⟨1, ⋯⟩, (fun i => i) ⟨0, ⋯⟩, PUnit.unit) =
Loop.sequence_mask values length ((fun i => i) ⟨1, ⋯⟩, (fun i => i) ⟨0, ⋯⟩, PUnit.unit)values:Tensor ℝ [2, 3]length:Tensor Int32 [2]⊢ Array.sequence_mask values length ((fun i => i) ⟨1, ⋯⟩, (fun i => i) ⟨1, ⋯⟩, PUnit.unit) =
Loop.sequence_mask values length ((fun i => i) ⟨1, ⋯⟩, (fun i => i) ⟨1, ⋯⟩, PUnit.unit)values:Tensor ℝ [2, 3]length:Tensor Int32 [2]⊢ Array.sequence_mask values length ((fun i => i) ⟨1, ⋯⟩, (fun i => i) ⟨2, ⋯⟩, PUnit.unit) =
Loop.sequence_mask values length ((fun i => i) ⟨1, ⋯⟩, (fun i => i) ⟨2, ⋯⟩, PUnit.unit)
values:Tensor ℝ [2, 3]length:Tensor Int32 [2]⊢ (if decide (↑2 < ↑(length (⟨1, ⋯⟩, ())).toInt) = true then values (⟨1, ⋯⟩, ⟨2, ⋯⟩, ()) else 0) =
if ⟨1, ⋯⟩ = 1 ∧ ⟨2, ⋯⟩ = 2 then
if True then
if decide (↑(length (⟨1 + 1 * ↑0, ⋯⟩, ())).toInt > 2) = true then
values (⟨1 + 1 * ↑0, ⋯⟩, ⟨0 + 1 * (2 + 1 * ↑0), ⋯⟩, ())
else 0
else
if 2 = 1 then
if decide (↑(length (⟨1 + 1 * ↑0, ⋯⟩, ())).toInt > 1) = true then
values (⟨1 + 1 * ↑0, ⋯⟩, ⟨0 + 1 * (1 + 1 * ↑0), ⋯⟩, ())
else 0
else
if 2 = 0 then
if decide (↑(length (⟨1 + 1 * ↑0, ⋯⟩, ())).toInt > 0) = true then
values (⟨1 + 1 * ↑0, ⋯⟩, ⟨0 + 1 * (0 + 1 * ↑0), ⋯⟩, ())
else 0
else 0
else
if ⟨1, ⋯⟩ = 1 ∧ ⟨2, ⋯⟩ = 1 then
if 1 = 2 then
if decide (↑(length (⟨1 + 1 * ↑0, ⋯⟩, ())).toInt > 2) = true then
values (⟨1 + 1 * ↑0, ⋯⟩, ⟨0 + 1 * (2 + 1 * ↑0), ⋯⟩, ())
else 0
else
if True then
if decide (↑(length (⟨1 + 1 * ↑0, ⋯⟩, ())).toInt > 1) = true then
values (⟨1 + 1 * ↑0, ⋯⟩, ⟨0 + 1 * (1 + 1 * ↑0), ⋯⟩, ())
else 0
else
if 1 = 0 then
if decide (↑(length (⟨1 + 1 * ↑0, ⋯⟩, ())).toInt > 0) = true then
values (⟨1 + 1 * ↑0, ⋯⟩, ⟨0 + 1 * (0 + 1 * ↑0), ⋯⟩, ())
else 0
else 0
else
if ⟨1, ⋯⟩ = 1 ∧ ⟨2, ⋯⟩ = 0 then
if 0 = 2 then
if decide (↑(length (⟨1 + 1 * ↑0, ⋯⟩, ())).toInt > 2) = true then
values (⟨1 + 1 * ↑0, ⋯⟩, ⟨0 + 1 * (2 + 1 * ↑0), ⋯⟩, ())
else 0
else
if 0 = 1 then
if decide (↑(length (⟨1 + 1 * ↑0, ⋯⟩, ())).toInt > 1) = true then
values (⟨1 + 1 * ↑0, ⋯⟩, ⟨0 + 1 * (1 + 1 * ↑0), ⋯⟩, ())
else 0
else
if True then
if decide (↑(length (⟨1 + 1 * ↑0, ⋯⟩, ())).toInt > 0) = true then
values (⟨1 + 1 * ↑0, ⋯⟩, ⟨0 + 1 * (0 + 1 * ↑0), ⋯⟩, ())
else 0
else 0
else
if ⟨1, ⋯⟩ = 0 ∧ ⟨2, ⋯⟩ = 2 then
if True then
if decide (↑(length (⟨0 + 1 * ↑0, ⋯⟩, ())).toInt > 2) = true then
values (⟨0 + 1 * ↑0, ⋯⟩, ⟨0 + 1 * (2 + 1 * ↑0), ⋯⟩, ())
else 0
else
if 2 = 1 then
if decide (↑(length (⟨0 + 1 * ↑0, ⋯⟩, ())).toInt > 1) = true then
values (⟨0 + 1 * ↑0, ⋯⟩, ⟨0 + 1 * (1 + 1 * ↑0), ⋯⟩, ())
else 0
else
if 2 = 0 then
if decide (↑(length (⟨0 + 1 * ↑0, ⋯⟩, ())).toInt > 0) = true then
values (⟨0 + 1 * ↑0, ⋯⟩, ⟨0 + 1 * (0 + 1 * ↑0), ⋯⟩, ())
else 0
else 0
else
if ⟨1, ⋯⟩ = 0 ∧ ⟨2, ⋯⟩ = 1 then
if 1 = 2 then
if decide (↑(length (⟨0 + 1 * ↑0, ⋯⟩, ())).toInt > 2) = true then
values (⟨0 + 1 * ↑0, ⋯⟩, ⟨0 + 1 * (2 + 1 * ↑0), ⋯⟩, ())
else 0
else
if True then
if decide (↑(length (⟨0 + 1 * ↑0, ⋯⟩, ())).toInt > 1) = true then
values (⟨0 + 1 * ↑0, ⋯⟩, ⟨0 + 1 * (1 + 1 * ↑0), ⋯⟩, ())
else 0
else
if 1 = 0 then
if decide (↑(length (⟨0 + 1 * ↑0, ⋯⟩, ())).toInt > 0) = true then
values (⟨0 + 1 * ↑0, ⋯⟩, ⟨0 + 1 * (0 + 1 * ↑0), ⋯⟩, ())
else 0
else 0
else
if ⟨1, ⋯⟩ = 0 ∧ ⟨2, ⋯⟩ = 0 then
if 0 = 2 then
if decide (↑(length (⟨0 + 1 * ↑0, ⋯⟩, ())).toInt > 2) = true then
values (⟨0 + 1 * ↑0, ⋯⟩, ⟨0 + 1 * (2 + 1 * ↑0), ⋯⟩, ())
else 0
else
if 0 = 1 then
if decide (↑(length (⟨0 + 1 * ↑0, ⋯⟩, ())).toInt > 1) = true then
values (⟨0 + 1 * ↑0, ⋯⟩, ⟨0 + 1 * (1 + 1 * ↑0), ⋯⟩, ())
else 0
else
if True then
if decide (↑(length (⟨0 + 1 * ↑0, ⋯⟩, ())).toInt > 0) = true then
values (⟨0 + 1 * ↑0, ⋯⟩, ⟨0 + 1 * (0 + 1 * ↑0), ⋯⟩, ())
else 0
else 0
else 0
all_goals All goals completed! 🐙values:Tensor ℝ [2, 3]length:Tensor Int32 [2]⊢ Array.sequence_mask values length = Loop.sequence_mask values length
exact matches_loop values lengthAll goals completed! 🐙end JaxLean.Puzzles.SequenceMask