%% Copyright (C) 2017, 2019, 2020, 2021 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. %% %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% We need to define existence, equality, and functions of %% essentially singular terms %% %% There are 7 relations of each %% The 7 cases are: %% 1 words %% 2 ideas %% 3 objects %% 4 words_ideas %% 5 words_objects %% 6 ideas_objects %% 7 words_ideas_objects %% Modified to add Number to ideas %% - singular %% - or plural %% %% 1 %% only guarantees word & idea exist qqqq(exists_essentially_singular_word, Subject, Time, Word) :- qqqq(rrrr, Subject, Time, Word, Idea), qqqq(number_idea, Idea, singular). %% 2 %% only quarantees singular idea exists qqqq(exists_essentially_singular_idea, Subject, Time, Idea) :- qqqq(number_idea, Idea, singular). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 %% 3 %% Guarantees Object with Idea exists qqqq(exists_essentially_singular_object, Subject, Time, Object) :- qqqq(ssss2, Subject, Time, Idea, Object), qqqq(number_idea, Idea, singular). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 4 %% guarantees word and idea qqqq(exists_essentially_singular_word_idea, Subject, Time, Word, Idea) :- qqqq(rrrr, Subject, Time, Word, Idea), qqqq(number_idea, Idea, singular). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 5 %% guarantees word & object qqqq(exists_essentially_singular_word_object, Subject, Time, Word, Object) :- qqqq(rrrr, Subject, Time, Word, Idea), qqqq(number_idea, Idea, singular), qqqq(ssss2, Subject, Time, Idea, Object). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 6 %% guarantees idea & object qqqq(exists_essentially_singular_idea_object, Subject, Time, Idea, Object) :- % List of Word Object Pairs. qqqq(ssss2, Subject, Time, Idea, Object), qqqq(number_idea, Idea, singular). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 7 %% qqqq(exists_essentially_singular_word_idea_object,Subject, Time, Word, Idea, Object) :- % List of Word Idea_Object Triples. qqqq(rrrr, Subject, Time, Word, Idea), qqqq(number_idea, Idea, singular), qqqq(ssss2,Subject, Time, Idea, Object). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% now equality -- only applies with object specified %% 1 %% NA %% 2 %% NA %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 %% 3 %% Guarantees Object with Idea exists qqqq(equal_essentially_singular_objects, Subject, Time, Object1, Object2) :- qqqq(ssss2, Subject, Time, Idea1, Object1), qqqq(ssss2, Subject, Time, Idea2, Object2), qqqq(number_idea, Idea1, singular), qqqq(number_idea, Idea2, singular), Object1 :== Object2. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 4 %% NA %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 5 %% guarantees word & object qqqq(equal_essentially_singular_words_objects, Subject, Time, Word1, Word2, Object1, Object2) :- qqqq(rrrr, Subject, Time, Word1, Idea1), qqqq(rrrr, Subject, Time, Word2, Idea2), qqqq(number_idea, Idea1, singular), qqqq(number_idea, Idea2, singular), qqqq(ssss2, Subject, Time, Idea1, Object1), qqqq(ssss2, Subject, Time, Idea2, Object2), Object1 :== Object2. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 6 %% guarantees idea & object qqqq(equal_essentially_singular_ideas_objects, Subject, Time, Idea1, Idea2, Object1, Object2) :- % List of Word Object Pairs. qqqq(ssss2, Subject, Time, Idea1, Object1), qqqq(ssss2, Subject, Time, Idea2, Object2), qqqq(number_idea, Idea1, singular), qqqq(number_idea, Idea2, singular), Object1 :== Object2. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 7 %% qqqq(equal_essentially_singular_words_ideas_objects, Subject, Time, Word1, Word2, Idea1, Idea2, Object1, Object2) :- % List of Word Idea_Object Triples. qqqq(rrrr, Subject, Time, Word1, Idea1), qqqq(rrrr, Subject, Time, Word2, Idea2), qqqq(number_idea, Idea1, singular), qqqq(number_idea, Idea2, singular), qqqq(ssss2, Subject, Time, Idea1, Object1), qqqq(ssss2, Subject, Time, Idea2, Object2), Object1 :== Object2. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% now functions -- only applies with object specified %% 1 %% NA %% 2 %% NA %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 %% 3 %% Guarantees Object exists qqqq(function_essentially_singular_object, Subject, Time, Function, Object) :- qqqq(ssss2, Subject, Time, Function_Idea, Function), qqqq(ssss2, Subject, Time, Idea, Object), qqqq(number_idea, Function_Idea, singular), qqqq(number_idea, Idea, singular), pos_qq([Function, Object]). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 4 %% NA %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 5 %% guarantees word & object qqqq(function_essentially_singular_word_object, Subject, Time, Function_Word, Word, Object) :- qqqq(rrrr, Subject, Time, Function_Word, Function_Idea), qqqq(rrrr, Subject, Time, Word, Idea), qqqq(number_idea, Function_Idea, singular), qqqq(number_idea, Idea, singular), qqqq(ssss2, Subject, Time, Function_Idea, Function), qqqq(ssss2, Subject, Time, Idea, Object), pos_qq([Function, Object]). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 6 %% guarantees idea & object qqqq(function_essentially_singular_idea_object, Subject, Time, Function_Idea, Idea, Object) :- % List of Word Object Pairs. qqqq(ssss2, Subject, Time, Function_Idea, Function), qqqq(ssss2, Subject, Time, Idea, Object), qqqq(number_idea, Function_Idea, singular), qqqq(number_idea, Idea, singular), pos_qq([Function, Object]). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 7 %% qqqq(function_essentially_singular_word_idea_object, Subject, Time, Function_Word, Word, Idea, Object) :- % List of Word Idea_Object Triples. qqqq(rrrr, Subject, Time, Function_Word, Function_Idea), qqqq(rrrr, Subject, Time, Word, Idea), qqqq(number_idea, Function_Idea, singular), qqqq(number_idea, Idea, singular), qqqq(ssss2, Subject, Time, Function_Idea, Function), qqqq(ssss2, Subject, Time, Idea, Object), pos_qq([Function, Object]).