Example #1
0
    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);
    }
Example #2
0
    // 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));
    }
Example #3
0
File: Not.cs Project: hwacha/SemInC
    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);
    }
Example #4
0
    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);
    }
Example #5
0
File: Not.cs Project: hwacha/SemInC
 public override UpdateInfo Make(Model m, TruthValue.T v)
 {
     return(sub.Make(m, Negate(v)));
 }