OAI/Combinatorics/BinaryEdit/EditMetric.lean
13 declarations, 0 contain sorry, 0 declared as axioms
- theorem
OAI.TreeEdit.BinaryLower.EditStep.length_leline 13 - theorem
OAI.TreeEdit.BinaryLower.EditScript.length_leline 21 - theorem
OAI.TreeEdit.BinaryLower.EditScript.replace_allline 29Source documentation
Replace corresponding symbols, then insert or delete the leftover tail. This uses at most the larger word length, including the empty-word cases.
theorem replace_all (x y : List α) : EditScript x y (max x.length y.length) := by …Mentions: OAI.TreeEdit.EditScript
- theorem
OAI.TreeEdit.BinaryLower.length_le_length_add_editDistanceline 45 - theorem
OAI.TreeEdit.BinaryLower.editDistance_pos_iffline 49Source documentation
Positivity of ordinary edit distance does not require an inhabited alphabet.
theorem editDistance_pos_iff {x y : List α} : 0 < ed x y ↔ x ≠ y := by …Mentions: OAI.TreeEdit.ed
- theorem
OAI.TreeEdit.BinaryLower.editDistance_le_max_lengthline 52 - theorem
OAI.TreeEdit.BinaryLower.editDistance_nil_rightline 55 - theorem
OAI.TreeEdit.BinaryLower.editDistance_nil_leftline 60 - inductive
OAI.TreeEdit.BinaryLower.StrictEditScriptline 65Source documentation
Genuine changes only: this excludes the harmless identity substitutions permitted by
EditStep.inductive StrictEditScript : List α → List α → ℕ → Prop | nil (x : List α) : StrictEditScript x x 0 | cons {x y z : List α} {n : ℕ} : EditStep x y → x ≠ y → StrictEditScript y z n → StrictEditScript x z (n + 1) namespace StrictEditScriptMentions: OAI.TreeEdit.EditStep
- theorem
OAI.TreeEdit.BinaryLower.StrictEditScript.toScriptline 72 - theorem
OAI.TreeEdit.BinaryLower.EditScript.strict_of_optimalline 81Source documentation
A minimum script never needs a redundant same-symbol substitution.
theorem EditScript.strict_of_optimal {x y : List α} {n : ℕ} (h : EditScript x y n) (hmin : ed x y = n) : StrictEditScript x y n := by …Mentions: OAI.TreeEdit.EditScript, OAI.TreeEdit.ed, OAI.TreeEdit.BinaryLower.StrictEditScript
- theorem
OAI.TreeEdit.BinaryLower.exists_optimal_strict_scriptline 96 - theorem
OAI.TreeEdit.BinaryLower.editDistance_eq_strict_minimumline 102Source documentation
Thus the concrete definition is unchanged if substitutions are required to change their symbol, exactly as in the ordinary edit convention.
theorem editDistance_eq_strict_minimum (x y : List α) : ed x y = sInf {n : ℕ | StrictEditScript x y n} := by …Mentions: OAI.TreeEdit.ed, OAI.TreeEdit.BinaryLower.StrictEditScript