% crochet

implement boolean-algebra for boolean;

/// Universal logical conjunction
command boolean and boolean = false;
command true and true = true;

test "boolean and boolean" do
  assert (true and true) =:= true;
  assert (true and false) =:= false;
  assert (false and true) =:= false;
  assert (false and false) =:= false;
end

/// Universal logical disjunction
command boolean or boolean = true;
command false or false = false;

test "boolean or boolean" do
  assert (true or true) =:= true;
  assert (true or false) =:= true;
  assert (false or true) =:= true;
  assert (false or false) =:= false;
end

/// Universal logical negation
command not true = false;
command not false = true;

test "not boolean" do
  assert (not true) =:= false;
  assert (not false) =:= true;
end