/-- info: Try this: [apply] termination_by xs.length / 2 - i -/ #guard_msgs in def foo (xs : String) (i : Nat) (a b : String.Legacy.Iterator) : Bool := if xs.length / 2 ≤ i then true else if a.curr ≠ b.curr then false else foo xs (i + 1) a.next b.prev termination_by? /-- info: Try this: [apply] termination_by xs.length / 2 - i -/ #guard_msgs in def bar (xs : String) (i : Nat) (a b : String.Legacy.Iterator) : Bool := if i < xs.length / 2 then if a.curr ≠ b.curr then false else bar xs (i + 1) a.next b.prev else true termination_by? /-- info: Try this: [apply] termination_by xs.length / 2 - i -/ #guard_msgs in def baz (xs : String) (i : Nat) (a b : String.Legacy.Iterator) : Bool := if ¬ (i < xs.length / 2) then true else if a.curr ≠ b.curr then false else baz xs (i + 1) a.next b.prev termination_by?