%% Copyright (C) 2017, 2019, 2020, 2021, 2023 Dennis J. Darland %% This file is part of darland's philosophy. %% darland's philosophy is free software: you can redistribute it and/or modify %% it under the terms of the GNU General Public License as published by %% the Free Software Foundation, either version 3 of the License, or %% (at your option) any later version. %% darland's philosophy is distributed in the hope that it will be useful, %% but WITHOUT ANY WARRANTY; without even the implied warranty of %% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %% GNU General Public License for more details. %% You should have received a copy of the GNU General Public License %% along with darland's philosophy. If not, see . %% Common Prolog & Life predicates to simulate Dennis J. Darlands philosophy. %% Started Writing 1/4/2017 %% This is a total rewrite of what I started about 10 years ago. %% %% %% %% %% There is one primitive sort of belief - in ideas %% believes_in_ideas( Subject, Time, %% [Relation_Idea, %% A_Idea, %% B_Idea, %% C_Idea, ... ]) %% under extensionality does not arise. %% of interest is that it is not a theorem that %% (x1)(x2)(y1)(y2)(z)(B)(R)(S)(F) ((x1 R y1) & (y1 S z) & (x2 R y2) & (y2 S z)) > (B(F,y1) iff B(F,y2)) %% The Subject at Time has a belief relation between the Relation_Idea and %% The following Ideas. %% There are 7 relations of both belief and belief_not. %% Those of understanding are defined in terms of rrrr and ssss %% Those of belief require also a belief_in_ideas relation. %% The 7 cases are: %% 1 words %% 2 ideas %% 3 objects %% 4 words_ideas %% 5 words_objects %% 6 ideas_objects %% 7 words_ideas_objects %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% These correspond to understanding. %% Except they involve belief as is indeicated by belief_in_ideas. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 1 qqqq(believes_words, Subject, Time, [[Relation_Word] | List]) :- %% list of words qqqq(rrrr, Subject, Time, Relation_Word, Relation_Idea), qqqq(arity_idea, Relation_Idea, Arity), qqqq(type_idea, Relation_Idea, Type), qqqq(match_word_belief,Subject, Time, List, Arity, Type - 1, [Relation_Idea]). qqqq(match_word_belief,Subject, Time, [], 0, Type, Idea_List) :- qqqq(believes_in_ideas, Subject, Time, Idea_List). %% -999 indicates arbitrary arity. qqqq(match_word_belief,Subject, Time, [], -999, Idea_List) :- qqqq(believes_in_ideas, Subject, Time, Idea_List). qqqq(match_word_belief,Subject, Time, [[Word] | List], Arity, Type, Idea_List) :- % List of Word Idea Pair. qqqq(rrrr, Subject, Time, Word, Idea), qqqq(type_idea, Idea, Type), Idea_List_Out = qqqq(append,Idea_List, [Idea]), qqqq(match_word_belief,Subject, Time, List, % if Arity is not Arbitrary sub 1 qqqq(cond,Arity =\= -999, Arity - 1, -999), Type, Idea_List_Out). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 2 %% believes_in_ideas is primitive for these purposes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 3 qqqq(believes_objects, Subject, Time, [[Relation] | List]) :- %% list of idea object Pairs qqqq(number_idea,Relation_Idea, singular), qqqq(ssss2, Subject, Time, Relation_Idea, Relation), qqqq(arity_idea, Relation_Idea, Arity), qqqq(type_idea, Relation_Idea, Type), qqqq(match_object_belief,Subject, Time, List, Arity, Type - 1, [Relation_Idea]). qqqq(believes_objects, Subject, Time, [[Relation] | List]) :- %% list of idea object Pairs qqqq(number_idea,Relation_Idea, plural), qqqq(tttt, Subject, Time, Relation_Idea, Relation), qqqq(arity_idea, Relation_Idea, Arity), qqqq(type_idea, Relation_Idea, Type), qqqq(match_object_belief,Subject, Time, List, Arity, Type - 1, [Relation_Idea]). qqqq(match_object_belief,Subject, Time, [], 0, Type, Idea_List) :- believes_in_ideas( Subject, Time, Idea_List). %% -999 indicates arbitrary arity. qqqq(match_object_belief,Subject, Time, [], -999, Type, Idea_List) :- believes_in_ideas( Subject, Time, Idea_List). qqqq(match_object_belief,Subject, Time, [[Object] | List], Arity, Type, Idea_List) :- % List of Objects. qqqq(number_idea,Idea, singular), qqqq(ssss2, Subject, Time, Idea, Object), qqqq(type_idea, Idea, Type), Idea_List_Out = qqqq(append,Idea_List, [Idea]), qqqq(match_object_belief,Subject, Time, List, % if Arity is not Arbitrary sub 1 qqqq(cond,Arity =\= -999, Arity - 1, -999), Type, Idea_List_Out). qqqq(match_object_belief,Subject, Time, [[Object] | List], Arity, Type, Idea_List) :- % List of Objects. qqqq(number_idea,Idea, plural), qqqq(tttt, Subject, Time, Idea, Object), qqqq(type_idea, Idea, Type), Idea_List_Out = qqqq(append,Idea_List, [Idea]), match_object_belief(Subject, Time, List, % if Arity is not Arbitrary sub 1 qqqq(cond,Arity =\= -999, Arity - 1, -999), Type, Idea_List_Out). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 4 qqqq(believes_words_ideas, Subject, Time, [[Relation_Word, Relation_Idea] | PairList]) :- %% list of word, idea pairs qqqq(rrrr, Subject, Time, Relation_Word, Relation_Idea), qqqq(number_idea,Relation_Idea, singular), qqqq(ssss2, Subject, Time, Relation_Idea, Relation), qqqq(arity_idea, Relation_Idea, Arity), qqqq(type_idea, Relation_Idea, Type), qqqq(match_word_idea_belief,Subject, Time, PairList, Arity, Type - 1, [Relation_Idea]). qqqq(believes_words_ideas, Subject, Time, [[Relation_Word, Relation_Idea] | PairList]) :- %% list of word, idea pairs qqqq(rrrr, Subject, Time, Relation_Word, Relation_Idea), qqqq(number_idea,Relation_Idea, plural), qqqq(tttt, Subject, Time, Relation_Idea, Relation), qqqq(arity_idea, Relation_Idea, Arity), qqqq(type_idea, Relation_Idea, Type), qqqq(match_word_idea_belief,Subject, Time, PairList, Arity, Type - 1, [Relation_Idea]). qqqq(match_word_idea_belief,Subject, Time, [], 0, Type, Idea_List) :- qqqq(believes_in_ideas, Subject, Time, Idea_List). %% -999 indicates arbitrary arity. qqqq(match_word_idea_belief,Subject, Time, [], -999, Idea_List) :- qqqq(believes_in_ideas, Subject, Time, Idea_List). qqqq(match_word_idea_belief,Subject, Time, [[Word, Idea] | PairList], Arity, Type, Idea_List) :- % List of Word Idea Object Triple. qqqq(rrrr, Subject, Time, Word, Idea), qqqq(type_idea, Idea, Type), Idea_List_Out = qqqq(append,Idea_List, [Idea]), qqqq(match_word_idea_belief,Subject, Time, PairList, % if Arity is not Arbitrary sub 1 qqqq(cond,Arity =\= -999, Arity - 1, -999), Type, Idea_List_Out). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 5 qqqq(believes_words_objects, Subject, Time, [[Relation_Word, Relation] | Pair_List]) :- %% list of word, idea object pairs qqqq(rrrr, Subject, Time, Relation_Word, Relation_Idea), qqqq(number_idea,Relation_Idea, singular), qqqq(ssss2, Subject, Time, Relation_Idea, Relation), qqqq(arity_idea, Relation_Idea, Arity), qqqq(type_idea, Relation_Idea, Type), qqqq(match_word_object_belief,Subject, Time, Pair_List, Arity, Type - 1, [Relation_Idea]). qqqq(believes_words_objects, Subject, Time, [[Relation_Word, Relation] | Pair_List]) :- %% list of word, idea object pairs qqqq(rrrr, Subject, Time, Relation_Word, Relation_Idea), qqqq(number_idea,Relation_Idea, plural), qqqq(tttt, Subject, Time, Relation_Idea, Relation), qqqq(arity_idea, Relation_Idea, Arity), qqqq(type_idea, Relation_Idea, Type), qqqq(match_word_object_belief,Subject, Time, Pair_List, Arity, Type - 1, [Relation_Idea]). qqqq(match_word_object_belief,Subject, Time, [], 0, Type, Idea_List) :- qqqq(believes_in_ideas, Subject, Time, Idea_List). %% -999 indicates arbitrary arity. qqqq(match_word_object_belief,Subject, Time, [], -999, Idea_List) :- qqqq(believes_in_ideas, Subject, Time, Idea_List). qqqq(match_word_object_belief,Subject, Time, [[Word, Object] | Pair_List], Arity, Type, Idea_List) :- % List of Word Idea Object Triple. qqqq(rrrr, Subject, Time, Word, Idea), qqqq(number_idea,Idea, singular), qqqq(ssss2, Subject, Time, Idea, Object), qqqq(type_idea, Idea, Type), % write(word,Word,idea,Idea,object,Object), % write(arity,Arity,type,Type), % write(triplelist,TripleList), % write(idea_list, Idea_List, idea, [Idea]), Idea_List_Out = qqqq(append,Idea_List, [Idea]), qqqq(match_word_object_belief,Subject, Time, Pair_List, % if Arity is not Arbitrary sub 1 qqqq(cond,Arity =\= -999, Arity - 1, -999), Type, Idea_List_Out). qqqq(match_word_object_belief,Subject, Time, [[Word, Object] | Pair_List], Arity, Type, Idea_List) :- % List of Word Idea Object Triple. qqqq(rrrr, Subject, Time, Word, Idea), qqqq(number_idea,Idea, plural), qqqq(tttt, Subject, Time, Idea, Object), qqqq(type_idea, Idea, Type), % write(word,Word,idea,Idea,object,Object), % write(arity,Arity,type,Type), % write(triplelist,TripleList), % write(idea_list, Idea_List, idea, [Idea]), Idea_List_Out = qqqq(append,Idea_List, [Idea]), qqqq(match_word_object_belief,Subject, Time, Pair_List, % if Arity is not Arbitrary sub 1 qqqq(cond,Arity =\= -999, Arity - 1, -999), Type, Idea_List_Out). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 6 qqqq(believes_ideas_objects,Subject, Time, [[Relation_Idea, Relation] | PairList]) :- %% list of word, idea object triples qqqq(number_idea,Relation_Idea, singular), qqqq(ssss2,Subject, Time, Relation_Idea, Relation), qqqq(arity_idea,Relation_Idea, Arity), qqqq(type_idea,Relation_Idea, Type), qqqq(match_idea_object_belief,Subject, Time, PairList, Arity, Type - 1, [Relation_Idea]). qqqq(believes_ideas_objects,Subject, Time, [[Relation_Idea, Relation] | PairList]) :- %% list of word, idea object triples qqqq(number_idea,Relation_Idea, plural), qqqq(tttt,Subject, Time, Relation_Idea, Relation), qqqq(arity_idea,Relation_Idea, Arity), qqqq(type_idea,Relation_Idea, Type), qqqq(match_idea_object_belief,Subject, Time, PairList, Arity, Type - 1, [Relation_Idea]). qqqq(match_idea_object_belief,Subject, Time, [], 0, Type, Idea_List) :- believes_in_ideas(Subject, Time, Idea_List). %% -999 indicates arbitrary arity. qqqq(match_idea_object_belief,Subject, Time, [], Arity, Idea_List) :- Arity =:= -999, qqqq(believes_in_ideas,Subject, Time, Idea_List). qqqq(match_idea_object_belief,Subject, Time, [[Idea, Object] | PairList], Arity, Type, Idea_List) :- % List of Word Idea Object Triple. qqqq(number_idea,Idea, singular), qqqq(ssss2,Subject, Time, Idea, Object), qqqq(type_idea,Idea, Type), Idea_List_Out = qqqq(append,Idea_List, [Idea]), Arity > 0, qqqq(match_idea_object_belief,Subject, Time, PairList, % if Arity is not Arbitrary sub 1 qqqq(cond,Arity =\= -999, Arity - 1, -999), Type, Idea_List_Out). qqqq(match_idea_object_belief,Subject, Time, [[Idea, Object] | PairList], Arity, Type, Idea_List) :- % List of Word Idea Object Triple. qqqq(number_idea,Idea, plural), qqqq(tttt,Subject, Time, Idea, Object), qqqq(type_idea,Idea, Type), Idea_List_Out = qqqq(append,Idea_List, [Idea]), Arity > 0, qqqq(match_idea_object_belief,Subject, Time, PairList, % if Arity is not Arbitrary sub 1 qqqq(cond,Arity =\= -999, Arity - 1, -999), Type, Idea_List_Out). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 7 qqqq(believes_words_ideas_objects, Subject, Time, [[Relation_Word, Relation_Idea, Relation] | TripleList]) :- %% list of word, idea object triples qqqq(rrrr, Subject, Time, Relation_Word, Relation_Idea), qqqq(number_idea,Relation_Idea, singular), qqqq(ssss2, Subject, Time, Relation_Idea, Relation), qqqq(arity_idea, Relation_Idea, Arity), qqqq(type_idea, Relation_Idea, Type), qqqq(match_triple_word_idea_object_belief,Subject, Time, TripleList, Arity, Type - 1, [Relation_Idea]). qqqq(believes_words_ideas_objects, Subject, Time, [[Relation_Word, Relation_Idea, Relation] | TripleList]) :- %% list of word, idea object triples qqqq(rrrr, Subject, Time, Relation_Word, Relation_Idea), qqqq(number_idea,Relation_Idea, plural), qqqq(tttt, Subject, Time, Relation_Idea, Relation), qqqq(arity_idea, Relation_Idea, Arity), qqqq(type_idea, Relation_Idea, Type), qqqq(match_triple_word_idea_object_belief,Subject, Time, TripleList, Arity, Type - 1, [Relation_Idea]). qqqq(match_triple_word_idea_object_belief,Subject, Time, [], 0, Type, Idea_List) :- qqqq(believes_in_ideas, Subject, Time, Idea_List). %% -999 indicates arbitrary arity. qqqq(match_triple_word_idea_object_belief,Subject, Time, [], -999, Idea_List) :- qqqq(believes_in_ideas, Subject, Time, Idea_List). qqqq(match_triple_word_idea_object_belief,Subject, Time, [[Word, Idea, Object] | TripleList], Arity, Type, Idea_List) :- % List of Word Idea Object Triple. qqqq(rrrr, Subject, Time, Word, Idea), qqqq(number_idea,Idea, singular), qqqq(ssss2, Subject, Time, Idea, Object), qqqq(type_idea, Idea, Type), Idea_List_Out = qqqq(append,Idea_List, [Idea]), qqqq(match_triple_word_idea_object_belief,Subject, Time, TripleList, % if Arity is not Arbitrary sub 1 qqqq(cond,Arity =\= -999, Arity - 1, -999), Type, Idea_List_Out). qqqq(match_triple_word_idea_object_belief,Subject, Time, [[Word, Idea, Object] | TripleList], Arity, Type, Idea_List) :- % List of Word Idea Object Triple. qqqq(rrrr, Subject, Time, Word, Idea), qqqq(number_idea,Idea, plural), qqqq(tttt, Subject, Time, Idea, Object), qqqq(type_idea, Idea, Type), Idea_List_Out = qqqq(append, Idea_List, [Idea]), qqqq(match_triple_word_idea_object_belief,Subject, Time, TripleList, % if Arity is not Arbitrary sub 1 qqqq(cond,Arity =\= -999, Arity - 1, -999), Type, Idea_List_Out). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% disbelieves cases. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 1 qqqq(disbelieves_words, Subject, Time, [[Relation_Word] | List]) :- %% list of words qqqq(rrrr, Subject, Time, Relation_Word, Relation_Idea), qqqq(arity_idea, Relation_Idea, Arity), qqqq(type_idea, Relation_Idea, Type), qqqq(match_not_word_belief,Subject, Time, List, Arity, Type - 1, [Relation_Idea]). qqqq(match_not_word_belief,Subject, Time, [], 0, Type, Idea_List) :- disbelieves_in_ideas( Subject, Time, Idea_List). %% -999 indicates arbitrary arity. qqqq(match_not_word_belief,Subject, Time, [], -999, Idea_List) :- qqqq(disbelieves_in_ideas, Subject, Time, Idea_List). qqqq(match_not_word_belief,Subject, Time, [[Word] | List], Arity, Type, Idea_List) :- % List of Word Idea Pair. qqqq(rrrr, Subject, Time, Word, Idea), qqqq(type_idea, Idea, Type), Idea_List_Out = qqqq(append,Idea_List, [Idea]), qqqq(match_not_word_belief,Subject, Time, List, % if Arity is not Arbitrary sub 1 qqqq(cond,Arity =\= -999, Arity - 1, -999), Type, Idea_List_Out). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 2 %% disbelieves_in_ideas is primitive for these purposes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 3 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% qqqq(disbelieves_objects, Subject, Time, [[Relation] | List]) :- %% list of idea object Pairs qqqq(number_idea,Relation_Idea, singular), qqqq(ssss2, Subject, Time, Relation_Idea, Relation), qqqq(arity_idea, Relation_Idea, Arity), qqqq(type_idea, Relation_Idea, Type), qqqq(match_not_object_belief,Subject, Time, List, Arity, Type - 1, [Relation_Idea]). qqqq(disbelieves_objects, Subject, Time, [[Relation] | List]) :- %% list of idea object Pairs qqqq(number_idea,Relation_Idea, plural), qqqq(tttt, Subject, Time, Relation_Idea, Relation), qqqq(arity_idea, Relation_Idea, Arity), qqqq(type_idea, Relation_Idea, Type), qqqq(match_not_object_belief,Subject, Time, List, Arity, Type - 1, [Relation_Idea]). qqqq(match_not_object_belief,Subject, Time, [], 0, Type, Idea_List) :- qqqq(disbelieves_in_ideas, Subject, Time, Idea_List). %% -999 indicates arbitrary arity. qqqq(match_not_object_belief,Subject, Time, [], -999, Idea_List) :- qqqq(disbelieves_in_ideas, Subject, Time, Idea_List). qqqq(match_not_object_belief,Subject, Time, [[Object] | List], Arity, Type, Idea_List) :- % List of Objects. qqqq(number_idea,Idea, singular), qqqq(ssss2, Subject, Time, Idea, Object), qqqq(type_idea, Idea, Type), Idea_List_Out = qqqq(append,Idea_List, [Idea]), qqqq(match_not_object_belief,Subject, Time, List, % if Arity is not Arbitrary sub 1 qqqq(cond,Arity =\= -999, Arity - 1, -999), Type, Idea_List_Out). qqqq(match_not_object_belief,Subject, Time, [[Object] | List], Arity, Type, Idea_List) :- % List of Objects. qqqq(number_idea,Idea, plural), qqqq(tttt, Subject, Time, Idea, Object), qqqq(type_idea, Idea, Type), Idea_List_Out = qqqq(append,Idea_List, [Idea]), qqqq(match_not_object_belief,Subject, Time, List, % if Arity is not Arbitrary sub 1 qqqq(cond,Arity =\= -999, Arity - 1, -999), Type, Idea_List_Out). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 4 qqqq(disbelieves_words_ideas, Subject, Time, [[Relation_Word, Relation_Idea] | PairList]) :- %% list of word, idea pairs qqqq(rrrr, Subject, Time, Relation_Word, Relation_Idea), qqqq(number_idea,Relation_Idea, singular), qqqq(ssss2, Subject, Time, Relation_Idea, Relation), qqqq(arity_idea, Relation_Idea, Arity), qqqq(type_idea, Relation_Idea, Type), qqqq(match_not_word_idea_belief, Subject, Time, PairList, Arity, Type - 1, [Relation_Idea]). qqqq(disbelieves_words_ideas, Subject, Time, [[Relation_Word, Relation_Idea] | PairList]) :- %% list of word, idea pairs qqqq(rrrr, Subject, Time, Relation_Word, Relation_Idea), qqqq(number_idea,Relation_Idea, plural), qqqq(tttt, Subject, Time, Relation_Idea, Relation), qqqq(arity_idea, Relation_Idea, Arity), qqqq(type_idea, Relation_Idea, Type), qqqq(match_not_word_idea_belief,Subject, Time, PairList, Arity, Type - 1, [Relation_Idea]). qqqq(match_not_word_idea_belief,Subject, Time, [], 0, Type, Idea_List) :- qqqq(disbelieves_in_ideas, Subject, Time, Idea_List). %% -999 indicates arbitrary arity. qqqq(match_not_word_idea_belief,Subject, Time, [], -999, Idea_List) :- qqqq(disbelieves_in_ideas, Subject, Time, Idea_List). qqqq(match_not_word_idea_belief,Subject, Time, [[Word, Idea] | PairList], Arity, Type, Idea_List) :- % List of Word Idea Object Triple. qqqq(rrrr, Subject, Time, Word, Idea), qqqq(type_idea, Idea, Type), Idea_List_Out = qqqq(append,Idea_List, [Idea]), qqqq(match_not_word_idea_belief,Subject, Time, PairList, % if Arity is not Arbitrary sub 1 qqqq(cond,Arity =\= -999, Arity - 1, -999), Type, Idea_List_Out). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 5 qqqq(disbelieves_words_objects, Subject, Time, [[Relation_Word, Relation] | Pair_List]) :- %% list of word, idea object pairs qqqq(rrrr, Subject, Time, Relation_Word, Relation_Idea), qqqq(number_idea,Relation_Idea, singular), qqqq(ssss2, Subject, Time, Relation_Idea, Relation), qqqq(arity_idea, Relation_Idea, Arity), qqqq(type_idea, Relation_Idea, Type), qqqq(match_not_word_object_belief,Subject, Time, Pair_List, Arity, Type - 1, [Relation_Idea]). qqqq(disbelieves_words_objects, Subject, Time, [[Relation_Word, Relation] | Pair_List]) :- %% list of word, idea object pairs qqqq(rrrr, Subject, Time, Relation_Word, Relation_Idea), qqqq(number_idea,Relation_Idea, plural), qqqq(tttt, Subject, Time, Relation_Idea, Relation), qqqq(arity_idea, Relation_Idea, Arity), qqqq(type_idea, Relation_Idea, Type), qqqq(match_not_word_object_belief,Subject, Time, Pair_List, Arity, Type - 1, [Relation_Idea]). qqqq(match_not_word_object_belief,Subject, Time, [], 0, Type, Idea_List) :- qqqq(disbelieves_in_ideas, Subject, Time, Idea_List). %% -999 indicates arbitrary arity. qqqq(match_not_word_object_belief,Subject, Time, [], -999, Idea_List) :- qqqq(disbelieves_in_ideas, Subject, Time, Idea_List). qqqq(match_not_word_object_belief,Subject, Time, [[Word, Object] | Pair_List], Arity, Type, Idea_List) :- % List of Word Idea Object Triple. qqqq(rrrr, Subject, Time, Word, Idea), qqqq(number_idea,Idea, singular), qqqq(ssss2, Subject, Time, Idea, Object), qqqq(type_idea, Idea, Type), Idea_List_Out = qqqq(append,Idea_List, [Idea]), qqqq(match_not_word_object_belief,Subject, Time, Pair_List, % if Arity is not Arbitrary sub 1 qqqq(cond,Arity =\= -999, Arity - 1, -999), Type, Idea_List_Out). qqqq(match_not_word_object_belief,Subject, Time, [[Word, Object] | Pair_List], Arity, Type, Idea_List) :- % List of Word Idea Object Triple. qqqq(rrrr, Subject, Time, Word, Idea), qqqq(number_idea,Idea, plural), qqqq(tttt, Subject, Time, Idea, Object), qqqq(type_idea, Idea, Type), Idea_List_Out = qqqq(append,Idea_List, [Idea]), qqqq(match_not_word_object_belief,Subject, Time, Pair_List, % if Arity is not Arbitrary sub 1 qqqq(cond,Arity =\= -999, Arity - 1, -999), Type, Idea_List_Out). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 6 qqqq(disbelieves_ideas_objects,Subject, Time, [[Relation_Idea, Relation] | PairList]) :- %% list of word, idea object triples qqqq(number_idea,Relation_Idea, singular), qqqq(ssss2,Subject, Time, Relation_Idea, Relation), qqqq(arity_idea,Relation_Idea, Arity), qqqq(type_idea,Relation_Idea, Type), qqqq(match_not_idea_object_belief,Subject, Time, PairList, Arity, Type - 1, [Relation_Idea]). qqqq(disbelieves_ideas_objects,Subject, Time, [[Relation_Idea, Relation] | PairList]) :- %% list of word, idea object triples qqqq(number_idea,Relation_Idea, plural), qqqq(tttt,Subject, Time, Relation_Idea, Relation), qqqq(arity_idea,Relation_Idea, Arity), qqqq(type_idea,Relation_Idea, Type), qqqq(match_not_idea_object_belief,Subject, Time, PairList, Arity, Type - 1, [Relation_Idea]). qqqq(match_not_idea_object_belief,Subject, Time, [], 0, Type, Idea_List) :- qqqq(disbelieves_in_ideas,Subject, Time, Idea_List). %% -999 indicates arbitrary arity. qqqq(match_not_idea_object_belief,Subject, Time, [], Arity, Idea_List) :- Arity =:= -999, qqqq(disbelieves_in_ideas,Subject, Time, Idea_List). qqqq(match_not_idea_object_belief,Subject, Time, [[Idea, Object] | PairList], Arity, Type, Idea_List) :- % List of Word Idea Object Triple. qqqq(number_idea,Idea, singular), qqqq(ssss2,Subject, Time, Idea, Object), qqqq(type_idea,Idea, Type), Idea_List_Out = qqqq(append,Idea_List, [Idea]), Arity > 0, qqqq(match_not_idea_object_belief,Subject, Time, PairList, % if Arity is not Arbitrary sub 1 qqqq(cond,Arity =\= -999, Arity - 1, -999), Type, Idea_List_Out). qqqq(match_not_idea_object_belief,Subject, Time, [[Idea, Object] | PairList], Arity, Type, Idea_List) :- % List of Word Idea Object Triple. qqqq(number_idea,Idea, plural), qqqq(tttt,Subject, Time, Idea, Object), qqqq(type_idea,Idea, Type), Idea_List_Out = qqqq(append,Idea_List, [Idea]), Arity > 0, qqqq(match_not_idea_object_belief,Subject, Time, PairList, % if Arity is not Arbitrary sub 1 qqqq(cond,Arity =\= -999, Arity - 1, -999), Type, Idea_List_Out). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 7 qqqq(disbelieves_words_ideas_objects, Subject, Time, [[Relation_Word, Relation_Idea, Relation] | TripleList]) :- %% list of word, idea object triples qqqq(rrrr, Subject, Time, Relation_Word, Relation_Idea), qqqq(number_idea,Relation_Idea, singular), qqqq(ssss2, Subject, Time, Relation_Idea, Relation), qqqq(arity_idea, Relation_Idea, Arity), qqqq(type_idea, Relation_Idea, Type), qqqq(match_not_triple_word_idea_object_belief,Subject, Time, TripleList, Arity, Type - 1, [Relation_Idea]). qqqq(disbelieves_words_ideas_objects, Subject, Time, [[Relation_Word, Relation_Idea, Relation] | TripleList]) :- %% list of word, idea object triples qqqq(rrrr, Subject, Time, Relation_Word, Relation_Idea), qqqq(number_idea,Relation_Idea, plural), qqqq(tttt, Subject, Time, Relation_Idea, Relation), qqqq(arity_idea, Relation_Idea, Arity), qqqq(type_idea, Relation_Idea, Type), qqqq(match_not_triple_word_idea_object_belief,Subject, Time, TripleList, Arity, Type - 1, [Relation_Idea]). qqqq(match_not_triple_word_idea_object_belief,Subject, Time, [], 0, Type, Idea_List) :- qqqq(disbelieves_in_ideas, Subject, Time, Idea_List). %% -999 indicates arbitrary arity. qqqq(match_not_triple_word_idea_object_belief,Subject, Time, [], -999, Idea_List) :- qqqq(disbelieves_in_ideas, Subject, Time, Idea_List). qqqq(match_not_triple_word_idea_object_belief,Subject, Time, [[Word, Idea, Object] | TripleList], Arity, Type, Idea_List) :- % List of Word Idea Object Triple. qqqq(rrrr, Subject, Time, Word, Idea), qqqq(number_idea,Idea, singular), qqqq(ssss2, Subject, Time, Idea, Object), qqqq(type_idea, Idea, Type), Idea_List_Out = qqqq(append,Idea_List, [Idea]), qqqq(match_not_triple_word_idea_object_belief,Subject, Time, TripleList, % if Arity is not Arbitrary sub 1 qqqq(cond,Arity =\= -999, Arity - 1, -999), Type, Idea_List_Out). qqqq(match_not_triple_word_idea_object_belief,Subject, Time, [[Word, Idea, Object] | TripleList], Arity, Type, Idea_List) :- % List of Word Idea Object Triple. qqqq(rrrr, Subject, Time, Word, Idea), qqqq(number_idea,Idea, plural), qqqq(tttt, Subject, Time, Idea, Object), qqqq(type_idea, Idea, Type), Idea_List_Out = qqqq(append,Idea_List, [Idea]), qqqq(match_not_triple_word_idea_object_belief,Subject, Time, TripleList, % if Arity is not Arbitrary sub 1 qqqq(cond,Arity =\= -999, Arity - 1, -999), Type, Idea_List_Out). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 1 words %% 2 ideas %% 3 objects %% 4 words_ideas %% 5 words_objects %% 6 ideas_objects %% 7 words_ideas_objects %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Now Contradicting beliefs!! %% 1 qqqq(contradicts_words, Subject, Time, List) :- qqqq(believes_words, Subject, Time, List), qqqq(disbelieves_words, Subject, Time, List). %% 2 qqqq(contradicts_ideas, Subject, Time, List) :- qqqq(believes_in_ideas, Subject, Time, List), qqqq(disbelieves_in_ideas, Subject, Time, List). %% 3 qqqq(contradicts_objects, Subject, Time, List) :- qqqq(believes_objects, Subject, Time, List), qqqq(disbelieves_objects, Subject, Time, List). %% 4 qqqq(contradicts_words_ideas, Subject, Time, Pair_List) :- qqqq(believes_words_ideas, Subject, Time, Pair_List), qqqq(disbelieves_words_ideas, Subject, Time, Pair_List). %% 5 qqqq(contradicts_words_objects, Subject, Time, Pair_List) :- qqqq(believes_words_objects, Subject, Time, Pair_List), qqqq(disbelieves_words_objects, Subject, Time, Pair_List). %% 6 qqqq(contradicts_ideas_objects, Subject, Time, Pair_List) :- qqqq(believes_ideas_objects, Subject, Time, Pair_List), qqqq(disbelieves_ideas_objects, Subject, Time, Pair_List). %% 7 qqqq(contradicts_words_ideas_objects, Subject, Time, Triple_List) :- qqqq(believes_words_ideas_objects, Subject, Time, Triple_List), qqqq(disbelieves_words_ideas_objects, Subject, Time, Triple_List).