import { Decider , Decision , ImplicationProofItem , Property } from '../../types' ; export interface NotDeciderInput { property : Property ; } /**
 * Decider that decides true iff the provided property evaluates to false.
 */ export class NotDecider implements Decider { public async decide ( input , noCache ? ) { const decision = await input . property . decider . decide ( input . property . input , noCache ) ; return this . getDecision ( input , decision ) ; } param input param subDecision returns private getDecision ( input , subDecision ) { const justification = [ { implication : { decider : this , input , } , implicationWitness : undefined , } , ... subDecision . justification , ] ; return { outcome : ! subDecision . outcome , justification , } ; } }