Date: 2025-11-20 Status: Implementation Complete, Testing In Progress
PatternHelpers.v (591 lines, 21KB) was killed by OOM during compilation despite 126GB RAM limit (50% of system memory).
Root Cause:
lia tactic callslia generates large proof terms (50-100 lines)Paradox: 17.5% file size (compared to monolithic) requires >3× memory
Memory Estimate: ~10GB Contents:
Compilation: ✅ SUCCESSFUL (verified)
Memory Estimate: ~50GB Contents:
nth_error_none_implies_no_pattern_matchphone_mismatch_implies_no_pattern_match (Admitted - needs Phone_eqb symmetry)pattern_matches_at_has_mismatch (96-line proof with nested induction)Compilation: 🔄 IN PROGRESS
Memory Estimate: ~80GB Contents:
pattern_has_leftmost_mismatch (136-line proof)Compilation: ⏳ PENDING
theories/Patterns/PatternHelpers_Basic.v - Basic infrastructuretheories/Patterns/PatternHelpers_Mismatch.v - Mismatch characterizationtheories/Patterns/PatternHelpers_Leftmost.v - Leftmost mismatch analysis_CoqProject - Updated to include 3 new files, removed old PatternHelpers.vtheories/Patterns/PatternOverlap.v - Updated imports:
From Liblevenshtein.Phonetic.Verification Require Import Patterns.PatternHelpers_Basic.
From Liblevenshtein.Phonetic.Verification Require Import Patterns.PatternHelpers_Mismatch.
From Liblevenshtein.Phonetic.Verification Require Import Patterns.PatternHelpers_Leftmost.
theories/Patterns/PatternHelpers.v - Kept for reference (not in _CoqProject)Command:
systemd-run --user --scope \
-p MemoryMax=126G \
-p CPUQuota=1800% \
-p IOWeight=30 \
-p TasksMax=200 \
make -j1 2>&1 | tee /tmp/compile_split_files.log
Parameters:
-j1) to minimize memory contentionpattern_matches_at_has_mismatch)pattern_has_leftmost_mismatch)Peak Memory: 80GB < 126GB limit ✅
Result: ❌ OOM killed Reason: Multiple files competing for memory
Result: ❌ OOM killed Reason: PatternHelpers.v alone exceeded 126GB
Result: ✅ IN PROGRESS Status: PatternHelpers_Basic.v compiled successfully, PatternHelpers_Mismatch.v compiling
Phone_eqb Symmetry Lemma
phone_mismatch_implies_no_pattern_match currently AdmittedPhone_eqb_sym proofDeprecation Warnings
firstn_length notation deprecated since Coq 8.20length_firstnLogical Path Warnings
. and theories/ overlap in -R/-Q mappingsCOQ_MEMORY_ANALYSIS.mdtheories/Patterns/PatternHelpers.v (original)/tmp/compile_split_files.logModular decomposition paradox: Smaller files can require MORE memory
Tactic choice matters: lia generates large proof terms
lia calls × ~50-100 lines each = 2,100-4,200 line proof termFile splitting strategy:
Serial vs parallel compilation:
Last Updated: 2025-11-20 22:30 UTC Next Update: After compilation completes (success or failure)
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 |