2014-11-04 2 views
3

나는 내가 CNF (이 숙제 시험에 대비하여, 그래서하지!)로 번역하기 위해 필요한이 코드가 있습니다프롤로그에 논리 곱 표준형

p,q 
r :- q 
false :- p , s 
s :- t 
t 

여기에 내가했던 일이야 :

p^q^(r V ~q)^(~p V ~s)^(s V ~t)^t 

= r 

내 추론이 맞습니까?

여기에 또 다른 질문이있다 :

당신은 R로 데이터베이스를 조회 할이. 데이터베이스에 어떤 조항을 추가해야합니까?

나는 모든이를 이해하지 않습니다. 단순화 후 데이터베이스는 기본적으로 r입니다. r이 맞습니까?

+1

여러 절은 일반적으로 "OR"관계를 의미한다, 그래서 당신은'(P^Q) V (r에 V ~ Q)를 ... '싶어 생각합니다. 그러나 표현의 의미가 Prolog 절이 모두 제대로 구성되어 있지 않고 일정 기간 내에 끝나지 않기 때문에 귀하의 목록이 의미하는 바는 분명하지 않습니다. – lurker

+1

당신은 시간의 부족이있는 경우, 당신이 (clpb) 라이브러리'볼 것을 권 해드립니다'SICStus, SWI 등이다. – false

답변

0

질문 "당신은 당신이 당신의 데이터베이스에 추가해야합니까 절과 연구. 데이터베이스를 조회 할?" 소위 반박 교정을 말합니다. 논박에서 증명 한 증거하지 않습니다

Database |- Query 

대신 하나의 증거 :

Database, ~Query |- f 

을 고전적인 논리에서 두 사람이 동일합니다. 그래서 당신의 예제에서 당신은 모순으로 인도한다는 것을 보여줄 필요가 있습니다. 프롤로그에서

안녕