21% The various fuzzy algebras ae implemented as modules that impose
   22% CHR constraints on tnorm/2
   23% This module implements Goedel algebra
   24
   25
   26:- module( alg_goedel, [tnorm/3, tnorm/4] ).   27:- use_module(library(chr)).   28
   29:- constraints tnorm/3.
   30:- constraints tnorm/4.
   31
   32
   33tnorm( conjunction, X, Y, Res ) :-
   34	float(X), float(Y),
   35	(X < Y -> Res is X; Res is Y).
   36tnorm( disjunction, X, Y, Res ) :-
   37	float(X), float(Y),
   38	(X > Y -> Res is X; Res is Y).
   39tnorm( implication, X, Y, Res ) :-
   40	float(X), float(Y),
   41	(X =< Y -> Res is 1.0; Res is Y).
   42tnorm( complement, X, Res ) :-
   43	float(X),
   44	(X == 0.0 -> Res is 1.0; Res is 0.0)