Reference · Algorithm guarantees
rainbow.algorithms.proofs.counterfactual-objective-laws
Native guarantees for the exact counterfactual optimization objective. counterfactual/objective = distance-squared + scale(weight, class-penalty) signed/scale-nonnegative counterfactual/objective-nonnegative counterfactual/distance-squared-at-most-objective counterfactual/equivalent-of-objective-zero A nonnegative-rational weight preserves a nonnegative signed penalty. Hence the objective is nonnegative, cannot undercut its proximity term, and—under the necessary same-shape hypothesis—can be zero only for equivalent plans. Native and axiom-free on D63.
counterfactual/objective
counterfactual/objective : (x₁ x₂ : List ℚ) (x₃ : ℚ≥0) (x₄ : ℚ) → ℚ
List = data/Listℚ = signed/SignedRationalℚ≥0 = nnrat/NonnegativeRational
signed/scale-nonnegative
signed/scale-nonnegative : (rate : ℚ≥0) (value : ℚ) (value-nonnegative : signed/nonnegative value) → signed/nonnegative (signed/scale rate value)
ℚ = signed/SignedRationalℚ≥0 = nnrat/NonnegativeRational
counterfactual/objective-nonnegative
counterfactual/objective-nonnegative : (original candidate : List ℚ) (weight : ℚ≥0) (class-penalty : ℚ) (penalty-nonnegative : signed/nonnegative class-penalty) → signed/nonnegative (counterfactual/objective original candidate weight class-penalty)
List = data/Listℚ = signed/SignedRationalℚ≥0 = nnrat/NonnegativeRational
counterfactual/distance-squared-at-most-objective
counterfactual/distance-squared-at-most-objective : (original candidate : List ℚ) (weight : ℚ≥0) (class-penalty : ℚ) (penalty-nonnegative : signed/nonnegative class-penalty) → counterfactual/distance-squared original candidate ≤ counterfactual/objective original candidate weight class-penalty
List = data/Listℚ = signed/SignedRationalℚ≥0 = nnrat/NonnegativeRational≤ = signed/at-most
counterfactual/equivalent-of-objective-zero
counterfactual/equivalent-of-objective-zero : (original candidate : List ℚ) (weight : ℚ≥0) (class-penalty : ℚ) (shape : vector/same-shape original candidate) (penalty-nonnegative : signed/nonnegative class-penalty) (objective-zero : counterfactual/objective original candidate weight class-penalty = 0) → vector/equivalent original candidate
0 = signed/zero= = signed/equivalent: equality of rational valuesList = data/Listℚ = signed/SignedRationalℚ≥0 = nnrat/NonnegativeRational