From marcos@mind.pt  Tue May 16 09:14:49 2000
Received: from internet02.ip.pt ([195.23.2.8])
	by swi.psy.uva.nl (8.9.3/8.9.3) with ESMTP id JAA18338
	for <prolog@swi.psy.uva.nl>; Tue, 16 May 2000 09:14:47 +0200 (MET DST)
Received: from oleber (ugly.inesc.pt [146.193.32.39]) by internet02.ip.pt with SMTP (Microsoft Exchange Internet Mail Service Version 5.5.2448.0)
	id 2LHZJW29; Tue, 16 May 2000 08:37:35 +0100
From: "Marcos Rebelo" <marcos@mind.pt>
To: <prolog@swi.psy.uva.nl>
Subject: Need help in a not unifyable
Date: Tue, 16 May 2000 08:20:12 +0100
Message-ID: <GIEMIPFOLGGDMLHGKOOMIEEGCCAA.marcos@mind.pt>
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 8bit
X-Priority: 3 (Normal)
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0)
Importance: Normal
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6700

	This is part of a code that I´m doing, when i try check(A,B) prolog gives
no answer, the problem must be in the \== but I have alredy tried \=@=, \=,
=\= and none worked.

For example if I try to do "c \== _ cf _" gives NO but "c == _ cf _" also
gives no. What is the problem here?

:-op(950, xfx, cf).
:-op(900, xfx, =>).

:-dynamic(cf / 2).
:-dynamic(=> / 2).

fact(a cf 0.4).
fact(b cf 0.3).
fact(c).
fact(d(b)).
fact(d(a) cf 0.8).
fact(d(e) cf 0.4).
fact(c => d(c)).
fact(d(a) => d(d) cf 0.9).

:-dynamic(fact / 1).

check(A, 1.0):-
	fact(A),
	A \== _ cf _,
	A \== _ => _.

check(A,B):-
	fact(A cf B),
	A \== _ => _.

check(A,X):-
	fact(B => A cf Xc),
	check(B,Xb),
	Xb>0,
	X is Xb * Xc.

thanks
MArcos

