Last Updated: 2025-12-01 Status: ✅ COMPLETE - All modules compile successfully with Rocq Prover 9.1.0. No Admitted lemmas remain.
This directory contains the modular decomposition of the Levenshtein distance proofs. The original monolithic files have been decomposed into smaller, focused modules organized by functionality.
Distance.v.bak (8,541 lines) - Original monolithic Levenshtein distance proofsTraceLowerBound.v.bak (2,195 lines) - Original monolithic trace lower bound proofsCore/Definitions.v - Basic definitions (Char, String, min3, subst_cost, Trace, Matrix)Core/LevDistance.v - Levenshtein distance function with termination proofCore/MinLemmas.v - Lemmas about min3 functionCore/MetricProperties.v - Metric space properties (identity, symmetry, upper bound)Trace/TraceBasics.v - Trace type, validity predicates, basic operationsTrace/TouchedPositions.v - touched_in_A, touched_in_B projectionsTrace/TraceCost.v - trace_cost function and cost lemmasTrace/TraceComposition.v - compose_trace operationCardinality/NoDupInclusion.v - NoDup inclusion lemmasCardinality/NoDupPreservation.v - NoDup preservation under trace operationsTriangle/SubstCostTriangle.v - Substitution cost triangle inequalityComposition/WitnessLemmas.v - Witness construction lemmasComposition/CompositionNoDup.v - NoDup preservation for composed tracesComposition/CompositionValidity.v - Validity preservation for composed tracesComposition/CostBounds.v - Cost bounds for trace compositionOptimalTrace/Construction.v - optimal_trace_pair construction via DP backtrackingOptimalTrace/Validity.v - Validity proof for optimal tracesOptimalTrace/CostEquality.v - trace_cost(optimal_trace) = lev_distanceTriangle/TriangleInequality.v - Triangle inequality via trace compositionMainTheorems.v - Consolidated exports of all main theoremsDPMatrix/MatrixOps.v - Matrix initialization and update operationsDPMatrix/SnocLemmas.v - Suffix (snoc) lemmas for lev_distanceDPMatrix/Correctness.v - Wagner-Fischer DP matrix correctnessLowerBound/Definitions.v - Trace types and basic definitionsLowerBound/HasPredicates.v - has_A1, has_B1, has_pair_11 predicatesLowerBound/ShiftTrace11.v - shift_trace_11 operationLowerBound/ShiftTraceA.v - shift_trace_A operationLowerBound/ShiftTraceB.v - shift_trace_B operationLowerBound/BoundHelpers.v - Validity bound helpersLowerBound/PigeonholeBounds.v - Pigeonhole principle boundsLowerBound/NoDupPreservation.v - NoDup preservation under shiftsLowerBound/ShiftTrace11Lemmas.v - shift_trace_11 validity and NoDupLowerBound/MonotonicityLemmas.v - Monotonicity preservationLowerBound/TraceCostFold.v - trace_cost_fold and change_cost decompositionLowerBound/MainTheorem.v - Main trace_cost_lower_bound theorem# Generate Makefile
coq_makefile -f _CoqProject -o Makefile
# Build all modules (using systemd resource limits for stability)
systemd-run --user --scope -p MemoryMax=126G -p CPUQuota=1800% make -j1
# Or simple build
make -j4
MainTheorems.v)Triangle/TriangleInequality.v)OptimalTrace/CostEquality.v)DPMatrix/Correctness.v)LowerBound/MainTheorem.v)Status as of 2025-12-01: ✅ ALL PROOFS COMPLETE - NO ADMITTED LEMMAS REMAIN
All modular proofs are now fully proven with Qed. The decomposition from Distance.v.bak and TraceLowerBound.v.bak is complete.
trace_cost_lower_bound_internal (Triangle/TriangleInequality.v)
is_valid_trace_aux_implies_monotonic from TraceBasics.vis_valid_trace to LowerBound's trace_cost_lower_boundtrace_composition_cost_bound (Composition/CostBounds.v)
witness_to_T1_injective, witness_to_T2_injective - injectivity proofsmap_injective_on_list_NoDup - NoDup preservation under injective mapsfold_left_triangle_bound, fold_left_sum_map_eq - fold_left infrastructurechange_cost_compose_bound - change cost triangle inequalitytrace_composition_delete_insert_bound - delete/insert cost boundscomposition_size_pigeonhole - pigeonhole principle for compositionNoDup_incl_exclusion (NoDupInclusion.v) - inclusion-exclusion principleTier 1: Core/Definitions
|
Tier 2: Core/LevDistance, Core/MinLemmas
|
Tier 3: Core/MetricProperties
|
Tier 4: Trace/TraceBasics, TouchedPositions, TraceCost, TraceComposition
|
Tier 5: Cardinality/NoDupInclusion, NoDupPreservation
|
Tier 6: Triangle/SubstCostTriangle
|
Tier 7: Composition/WitnessLemmas, CompositionNoDup, CompositionValidity, CostBounds
|
Tier 8: OptimalTrace/Construction, Validity, CostEquality
|
Tier 9: Triangle/TriangleInequality, MainTheorems
|
Tier 10: DPMatrix/MatrixOps, SnocLemmas, Correctness
|
LowerBound/* (parallel track)
Can you improve this documentation?Edit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |