public override UpdateInfo Make(Model m, TruthValue.T v) { Function wrappers = (Function)m.Get(GetSemanticType(), Model.WRAPPERS_ID); Wrapper w = new Wrapper(this); // if this logical form is already in the model if (wrappers.HasInput(w)) { TruthValue oldValue = (TruthValue)wrappers.Apply(w); if (oldValue.Get() == v) { return(UpdateInfo.NoChange); } if (oldValue.Get() == TruthValue.T.Unknown) { return(oldValue.Add(v)); } return(UpdateInfo.Warning); } // if this logical form isn't defined yet wrappers.Set(w, new TruthValue(v)); return(UpdateInfo.Updated); }
// Updates the Model (M) such that // l has the truth value v in M private UpdateInfo Make(LogicalForm l, TruthValue.T v) { if (l.IsClosed() && l.IsFormula()) { return(UpdateInfo.NoChange); } return(l.Make(this, v)); }
private TruthValue.T Negate(TruthValue.T v) { if (v == TruthValue.T.True) { return(TruthValue.T.False); } if (v == TruthValue.T.False) { return(TruthValue.T.True); } return(TruthValue.T.Unknown); }
public virtual UpdateInfo Make(Model m, TruthValue.T v) { if (!(IsFormula() && IsClosed())) { return(UpdateInfo.NoChange); } TruthValue currentValue = (TruthValue)Denotation(m); if (currentValue.Get() == v) { return(UpdateInfo.NoChange); } if (currentValue.Get() == TruthValue.T.Unknown) { return(currentValue.Add(v)); } return(UpdateInfo.Warning); }
public override UpdateInfo Make(Model m, TruthValue.T v) { return(sub.Make(m, Negate(v))); }