kleenelogic 1.0.2
See the version list below for details.
dotnet add package kleenelogic --version 1.0.2
NuGet\Install-Package kleenelogic -Version 1.0.2
<PackageReference Include="kleenelogic" Version="1.0.2" />
<PackageVersion Include="kleenelogic" Version="1.0.2" />
<PackageReference Include="kleenelogic" />
paket add kleenelogic --version 1.0.2
#r "nuget: kleenelogic, 1.0.2"
#:package kleenelogic@1.0.2
#addin nuget:?package=kleenelogic&version=1.0.2
#tool nuget:?package=kleenelogic&version=1.0.2
KleeneLogic
KleeneLogic is a compact, fast implementation of Kleene's strong three-valued logic (K3) for C# / .NET.
It gives you True, False, and Unknown with real logic operators.
Install
dotnet add package KleeneLogic
Quick start
using KleeneLogic;
Kleene a = Kleene.True;
Kleene b = Kleene.Unknown;
var result = a & b | !a;
Why use this
bool?(nullable Boolean) has the right values but no operators- You can keep uncertainty without collapsing it to false
- Operators are branch-free and follow K3 truth tables
Control flow semantics
Kleene defines operator true and operator false:
if (k)runs only whenk == Trueif (!k)runs only whenk == FalseUnknownis neither true nor false
Defaults (explicit collapse)
Kleene isAllowed = ruleResult.Default(Kleene.False);
bool canProceed = isApproved.Default(false);
Parsing
Kleene k = Kleene.Parse("unknown"); // invariant default
Accepted invariant inputs are case-insensitive true, false, unknown.
Alias for unknown: maybe.
Numeric forms -1, 0, 1 are also accepted.
Overloads accepting an IFormatProvider enable language-specific tokens.
No-culture overloads use invariant terms; English culture (en-*) uses yes, no, unknown.
Invariant input tokens true, false, maybe are accepted even with an explicit non-invariant culture.
Language terms are read from kleene.language-terms.json next to the assembly, with built-in fallback defaults.
JSON (System.Text.Json)
using KleeneLogic;
using KleeneLogic.Serialization;
using System.Text.Json;
var opts = new JsonSerializerOptions();
opts.Converters.Add(new KleeneJsonConverter());
var k = JsonSerializer.Deserialize<Kleene>("null", opts); // Unknown
Links
- Source and full documentation: see the repository root README.md
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.