# Planning SAT Solver v7

## Instance Family
Diverse planning-as-SAT instances: gripper, ferry, driverlog, rovers, satellite, depots, blocks, logistics, transport, sokoban, mrpp, barman, openstacks, hanoi, uts, sortnet, shuffling, and PDDL-derived (termes, nurikabe, snake, childsnack, tidybot, thoughtful).

## Architecture
- **Binary clauses**: Stored in separate implication lists for fast propagation (no pointer chasing)
- **Long clauses**: Two-watched-literal scheme with blocker optimization
- **Decision**: VSIDS with exponential decay (0.95)
- **Analysis**: 1-UIP with recursive minimization
- **Phase**: Save last polarity (default negative = "don't do action")
- **Restarts**: Glucose-style EMA-based (fast/slow LBD comparison)
- **Reduction**: LBD-based: keep LBD ≤ 2, delete worst 50%, lazy watch cleanup
- **FLP**: Failed literal probing at level 0 before search
- **Proof**: VeriPB 2.0 with buffered RUP output, 4GB limit, deletion rules

## Submission 1 Results (v5)
- sat: 226, unsat: 45, unknown: 207, timeout: 13, oom: 31, prover-timeout: 12
- Total solved: 271/534 (baseline kissat: 329/534)

## Submission 2 Results (v6)
- sat: 224, unsat: 57, unknown: 236, timeout: 2, oom: 6, prover-timeout: 10
- Total solved: 281/534

## v7 Improvements
- Failed literal probing (FLP) preprocessing: probes each variable, detects forced assignments
- Proof deletion rules in reduceDB: writes `del id` for deleted learned clauses
- Both features aim to close gap with kissat (281→329+ target)

## Known Limitations
- Still 2-5x slower than kissat on hard instances
- FLP is single-pass (no iterating until fixpoint)
- No clause database garbage collection
- Large instances may OOM due to proof buffer

## Next Steps
- Iterative FLP (re-probe after fixes)
- Vivification / clause strengthening
- Better restart policy tuning
- Investigate largest timeout instances

## Changelog
- v7: Failed literal probing, proof deletion rules
- v6: Binary clause implication lists, always-on proofs
- v5: Buffered proof I/O, lazy clause deletion
- v4: LBD-based clause reduction
- v2: Fixed watch list convention bug
- v1: Initial CDCL implementation
