Positive reporting frontiers contain no duplicate prefixes
ProvedThreeSum.Reporting.frontier_nodup3sumalgorithmsfine-grained-complexitythree-sum-1962word-ram
Let be a type with decidable equality. At each depth , let be a list of possible next symbols, and let be a query value for a prefix . Starting with the empty prefix when its query is positive, form each frontier by appending every symbol in to the previous frontier and retaining positive-query prefixes. If every has no duplicates, then
This structural guarantee holds for arbitrary query values. It ensures that the reporting traversal does not repeat a prefix when each child list is duplicate-free.
Preamble
import Aesop import Definitions.Def_ThreeSum1962Source_Bundle04 import Lean.Elab.Tactic.Omega import Mathlib.Algebra.BigOperators.Group.Finset.Powerset import Mathlib.Algebra.BigOperators.Group.Finset.Sigma import Mathlib.Algebra.BigOperators.Ring.Finset import Mathlib.Algebra.Order.BigOperators.Group.Finset import Mathlib.Data.Finset.Card import Mathlib.Data.List.Nodup import Mathlib.Tactic.ByContra import Mathlib.Tactic.Ring import Mathlib.Tactic.SplitIfs set_option autoImplicit false set_option relaxedAutoImplicit false set_option Elab.async false universe u_2
Formal statement
theorem ThreeSum.Reporting.frontier_nodup : ∀ {α : Type u_2} [DecidableEq.{u_2 + 1} α] (children : Nat → List.{u_2} α) (query : Nat → List.{u_2} α → Nat)
(hc : ∀ (k : Nat), @List.Nodup.{u_2} α (children k)) (k : Nat),
@List.Nodup.{u_2} (List.{u_2} α) (@ThreeSum.Reporting.frontier.{u_2} α children query k) := by
sorry
Source