Skip to main content

evaluate_conditional_obligation

Function evaluate_conditional_obligation 

Source
pub fn evaluate_conditional_obligation(
    facts: &[NQuin],
    party: u64,
    condition_pred: u64,
    condition_obj: u64,
    obligation_obj: u64,
) -> bool
Expand description

General dyadic / conditional obligation O(obligation | condition): the obligation is binding only given the condition holds. Returns true iff the conditional is satisfied — either the condition does not hold (vacuously satisfied), or it holds AND the obligation has been fulfilled.

Facts convention: the condition holds iff (party, condition_pred, condition_obj) is present; the obligation is fulfilled iff (party, q42:fulfilled, obligation_obj) is. Contrary-to-duty is the special case condition_pred = q42:breached. Zero-heap.