logic "G\""odel".
truth_values {f,*,t}.
designated_truth_values {t}.

operator(true /0, mapping { t }).
operator(false/0, mapping { f }).
operator(neg  /1, mapping { (t): f,
                            (*): f,
                            (f): t
                          }
        ).

ordering(linear, "f < * < t").
operator(and  /2, inf(linear)).
operator(or   /2, sup(linear)).

operator(imp/2, table   [     f, *, t,
                          f,  t, t, t,
                          *,  f, t, t,
                          t,  f, *, t
                        ]
        ).

quantifier(forall, induced_by and/2).
quantifier(exists, induced_by or/2).
