public bool LogicallyImplies(LogicExpression e) { var ops = _operands + e._operands; var n = ops.GetCombinations(); for (int l = 0; l < n; ++l) { ops.SetValues(l); if (GetTruthValue(ops) && !e.GetTruthValue(ops)) { return(false); } } return(true); }
public bool IsValid() { var expression = LogicExpression.Create(ToExpression()); return(expression.IsTautology()); }
public void SetConclusion(LogicExpression conclusion) { _conclusion = conclusion; }
public void AddPremise(LogicExpression premise) { _premises.Add(premise); }
public LogicExpression Disjunction(LogicExpression e) { return(Create($"({Expression}|{e.Expression})")); }
public LogicExpression Conjunction(LogicExpression e) { return(Create($"({Expression}&{e.Expression})")); }