You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/SCFirstOrderLogic/CNFClause.cs
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -10,8 +10,8 @@ namespace SCFirstOrderLogic;
10
10
11
11
/// <summary>
12
12
/// <para>
13
-
/// Streamlined representation of an individual clause (i.e. a disjunction of <see cref="Literal"/>s) of a first-order logic formula in conjunctive normal form.
14
-
/// Consists of a set of <see cref="Literal"/>s.
13
+
/// Streamlined representation of an individual clause of a first-order logic formula in conjunctive normal form (CNF).
14
+
/// Consists of a <see cref="IReadOnlySet{T}"/> set of <see cref="Literal"/>s.
15
15
/// </para>
16
16
/// <para>
17
17
/// Note that this type is NOT a subtype of <see cref="Formula"/>. To represent a clause as a <see cref="Formula"/>,
Copy file name to clipboardExpand all lines: src/SCFirstOrderLogic/CNFFormula.cs
+8-2Lines changed: 8 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -10,8 +10,8 @@ namespace SCFirstOrderLogic;
10
10
11
11
/// <summary>
12
12
/// <para>
13
-
/// Streamlined representation of a <see cref="Formula"/> in conjunctive normal form (CNF).
14
-
/// Consists of a set of <see cref="CNFClause"/>s.
13
+
/// Streamlined representation of a first-order logic formula in conjunctive normal form (CNF).
14
+
/// Consists of a <see cref="IReadOnlySet{T}"/> of <see cref="CNFClause"/>s.
15
15
/// </para>
16
16
/// <para>
17
17
/// Note that this type is NOT a subtype of <see cref="Formula"/>. To represent CNF as a <see cref="Formula"/>,
@@ -39,7 +39,13 @@ public CNFFormula(IEnumerable<CNFClause> clauses)
39
39
}
40
40
41
41
/// <summary>
42
+
/// <para>
42
43
/// Initialises a new instance of the <see cref="CNFFormula"/> class from a <see cref="Formula"/> that is a conjunction of disjunctions of literals (a literal being a predicate or a negated predicate).
44
+
/// </para>
45
+
/// <para>
46
+
/// An <see cref="ArgumentException"/> will be thrown if the provided formula is not a conjunction of disjunctions of literals.
47
+
/// In other words, conversion to CNF is NOT carried out by this constructor.
48
+
/// </para>
43
49
/// </summary>
44
50
/// <param name="cnfFormula">
45
51
/// The formula, in CNF but represented as a <see cref="Formula"/>. An <see cref="ArgumentException"/> will be thrown if it is not a conjunction of disjunctions of literals.
/// This class provides functionality for rendering <see cref="Formula"/> instances (and <see cref="CNFFormula"/> instances) in the standard first-order logic syntax.
13
-
/// Using a single <see cref="FormulaFormatter"/> instance allows for unique (and customisable) labelling of standardised variables and Skolem functions for all formulas formatted with the instance.
13
+
/// Using a single <see cref="FormulaFormatter"/> instance allows for unique (and customisable) labelling of identifiers (e.g. standardised variables and Skolem functions)
Copy file name to clipboardExpand all lines: src/SCFirstOrderLogic/_PackageFiles/SCFirstOrderLogic.md
+4-3Lines changed: 4 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,10 +3,11 @@
3
3
The SCFirstOrderLogic NuGet package contains basic but fully functional and documented [first-order logic](https://en.wikipedia.org/wiki/First-order_logic) implementations for .NET.
4
4
Included are:
5
5
6
-
* Implementations of both raw and CNF formula representation.
6
+
* A tree model for formulas.
7
+
* A streamlined model for formulas in conjunctive normal form - a set of clauses rather than a tree.
7
8
* Multiple ways of instantiating raw formulas, ranging from string parsing, through a number of code-based approaches, all the way to a language-integrated approach that allows (the domain to be modelled as an IEnumerable<T> and) formulas to be provided as lambda expressions.
8
-
* Formula manipulation logic - base classes for formula visitors and transformations, as well as some implementations - e.g. normalisation, variable substitutions and basic unification logic.
9
-
* Formula formatting logic that allows for (customisable) unique labelling of standardised variables and Skolem functions across a set of formulas.
9
+
* Formula manipulation logic - base classes for formula visitors and transformations, as well as some fundamental implementations - normalisation, variable substitutions and basic unification logic.
10
+
* Formula formatting logic that allows for (customisable) unique labelling of identifiers (e.g. standardised variables and Skolem functions) across a set of formulas.
10
11
* Index structures for terms and clauses, with node abstractions to allow for consumer-provided backing stores. Specifically, we have discrimination tree, path tree and feature vector index implementations.
11
12
12
13
Accompanying the core SCFirstOrderLogic package are three supporting packages:
0 commit comments