Reference · The Applied Higher-Order Functions catalogue
rainbow.algorithms.proofs.ahof.cutting-planes
AHoF O73 Cutting Planes: solve an integer/convex program by iteratively adding linear inequalities (cuts) that remove the current fractional/infeasible LP solution while preserving all true solutions. The current point is feasible for a constraint a.x <= b when its left-hand side stays within the bound; a cut is added exactly when it does not: feasible? lhs bound = decide (lhs <= bound) add-cut? lhs bound = NOT (feasible? lhs bound) (boolean negation via if-data) over exact rationals. Proved native and axiom-free: the feasibility decision, the add-cut complement, a satisfied point (no cut) and a violated point (cut added). Requires audit/decide-nnrat-at-most, logic/if-data (both in the D63 checkpoint). Scope (measured by the kernel): this module has 3 worked instances (statements about specific values). None of its theorems is a guarantee about the algorithm for all inputs; `lein verify rainbow.algorithms.proofs.ahof.cutting-planes` prints this classification.
cutting-planes/feasible?
cutting-planes/feasible? : (x₁ x₂ : ℚ≥0) → data/Bool
ℚ≥0 = nnrat/NonnegativeRational
cutting-planes/add-cut?
cutting-planes/add-cut? : (x₁ x₂ : ℚ≥0) → data/Bool
ℚ≥0 = nnrat/NonnegativeRational
cutting-planes/satisfied-no-cut
cutting-planes/satisfied-no-cut : → cutting-planes/add-cut? 1/2 3/4 = data/false
= = equality/Eq
cutting-planes/point-feasible
cutting-planes/point-feasible : → ce-is/elite? 1/2 3/4 = data/true
= = equality/Eq
cutting-planes/violated-cut-added
cutting-planes/violated-cut-added : → cutting-planes/add-cut? 3/4 1/2 = data/true
= = equality/Eq