Initial data commit

This commit is contained in:
Ingy döt Net 2023-07-01 11:58:00 -04:00
parent 72d218235f
commit f23f22d71c
199087 changed files with 3378941 additions and 0 deletions

View file

@ -0,0 +1,33 @@
var L3 = new Object();
L3.not = function(a) {
if (typeof a == "boolean") return !a;
if (a == undefined) return undefined;
throw("Invalid Ternary Expression.");
}
L3.and = function(a, b) {
if (typeof a == "boolean" && typeof b == "boolean") return a && b;
if ((a == true && b == undefined) || (a == undefined && b == true)) return undefined;
if ((a == false && b == undefined) || (a == undefined && b == false)) return false;
if (a == undefined && b == undefined) return undefined;
throw("Invalid Ternary Expression.");
}
L3.or = function(a, b) {
if (typeof a == "boolean" && typeof b == "boolean") return a || b;
if ((a == true && b == undefined) || (a == undefined && b == true)) return true;
if ((a == false && b == undefined) || (a == undefined && b == false)) return undefined;
if (a == undefined && b == undefined) return undefined;
throw("Invalid Ternary Expression.");
}
// A -> B is equivalent to -A or B
L3.ifThen = function(a, b) {
return L3.or(L3.not(a), b);
}
// A <=> B is equivalent to (A -> B) and (B -> A)
L3.iff = function(a, b) {
return L3.and(L3.ifThen(a, b), L3.ifThen(b, a));
}

View file

@ -0,0 +1,10 @@
L3.not(true) // false
L3.not(var a) // undefined
L3.and(true, a) // undefined
L3.or(a, 2 == 3) // false
L3.ifThen(true, a) // undefined
L3.iff(a, 2 == 2) // undefined

View file

@ -0,0 +1,9 @@
trit = {false: 'F', maybe: 'U', true: 'T'}
nand = (a, b) => (a == trit.false || b == trit.false) ? trit.true : (a == trit.maybe || b == trit.maybe) ? trit.maybe : trit.false
not = (a) => nand(a, a)
and = (a, b) => not(nand(a, b))
or = (a, b) => nand(not(a), not(b))
nor = (a, b) => not(or(a, b))
implies = (a, b) => nand(a, not(b))
iff = (a, b) => or(and(a, b), nor(a, b))
xor = (a, b) => not(iff(a, b))

View file

@ -0,0 +1,15 @@
functor = {nand, and, or, nor, implies, iff, xor}
display = {nand: '⊼', and: '∧', or: '', nor: '⊽', implies: '⇒', iff: '⇔', xor: '⊻', not: '¬'}
values = Object.values(trit)
log = 'NOT\n';
for (let a of values) log += `${display.not}${a} = ${a}\n`
log += '\nNAND AND OR NOR IMPLIES IFF XOR'
for (let a of values) {
for (let b of values) {
log += "\n"
for (let op in functor) log += `${a} ${display[op]} ${b} = ${functor[op](a, b)} `
}
}
console.log(log)

View file

@ -0,0 +1,15 @@
NOT
¬F = F
¬U = U
¬T = T
NAND AND OR NOR IMPLIES IFF XOR
F F = T F F = F F F = F F F = T F F = T F F = T F F = F
F U = T F U = F F U = U F U = U F U = T F U = U F U = U
F T = T F T = F F T = T F T = F F T = T F T = F F T = T
U F = T U F = F U F = U U F = U U F = U U F = U U F = U
U U = U U U = U U U = U U U = U U U = U U U = U U U = U
U T = U U T = U U T = T U T = F U T = T U T = U U T = U
T F = T T F = F T F = T T F = F T F = F T F = F T F = T
T U = U T U = U T U = T T U = F T U = U T U = U T U = U
T T = F T T = T T T = T T T = F T T = T T T = T T T = F