• Deleted User
    0
    This user has been deleted and all their posts removed.
  • Deleted User
    0
    This user has been deleted and all their posts removed.
  • Tarskian
    658
    How First Order Logic achieves this is beyond my pay grade.RussellA

    There are multiple solution strategies possible, none of which, however, naturally translate to first-order logic, because the problem is most naturally expressed by using three-tuples, which therefore require second-order logic.

    ---------------------------------------------------------
    - three persons (A,B,C)
    - three identities (truth,liar,random)

    - three constraints:

    a) A says that B=truth
    b) B says that B=random
    c) C says that B=liar
    ---------------------------------------------------------

    There are 3!, i.e. 6 ways of assigning the three identities to the three persons.

    (A,B,C) must be one of { 1:(truth,liar,random), 2:(liar,truth,random), 3:(random,truth,liar), 4:(random,liar,truth), 5:(truth,random,liar), 6:(liar,random,truth) }

    The following is a very simple solution strategy.

    Check each three-tuple one by one, and verify if it is compatible with the three constraints:

    Example:

    1:(truth,liar,random)
    a) truth says that liar=truth => false, abort
    It cannot be 1:

    2:(liar,truth,random)
    a) liar says that truth=truth. => false, abort
    It cannot be 2:

    ... and so on ...

    Eventually, there will only be one three-tuple that survives scrutiny. There are obviously other solution strategies, i.e. algorithms, possible but they are in my impression not particularly faster or easier.
  • javi2541997
    7.2k
    A is either True or False, so A∨¬A. Therefore, A→B can be either True or False (in this case False). No inconsistency in the solution presented.Lionino

    What do you mean by ‘no inconsistency’? That A is coherent but ambiguous or what?

    The problem with A is:

    B -> A ∧ B = ¬A.

    I don’t know whether is coherent or not. But the negation of “A is the truth-teller" means that “A is either the liar or the ambiguous person" Therefore, you are claiming he is the ambiguous and not B. Agree?
  • Deleted User
    0
    This user has been deleted and all their posts removed.
  • Tarskian
    658
    For the afficionados, a simple solution strategy implemented in javascript:

    #!/usr/bin/env qjs
    
    //it is possible to generate the solution space automatically
    //but it is so small that it is easier to just supply it manually
    var solutionSpace= [
    			{"A":"truth", "B":"liar","C":"random"},
    			{"A":"liar","B":"truth","C":"random"},
    			{"A":"random","B":"truth","C":"liar"},
    			{"A":"random","B":"liar","C":"truth"},
    			{"A":"truth","B":"random","C":"liar"},
    			{"A":"liar","B":"random","C":"truth" }
    		   ];
    
    //constraint.index is just for the purpose of reference
    var constraints = [ 
    	{"index":"a","who_says":"A","B_is":"truth"},
    	{"index":"b","who_says":"B", "B_is":"random"},
    	{"index":"c","who_says":"C", "B_is":"liar"}
    	];
    
    //we iterate over every potential solution in the solution space
    for(var solution of solutionSpace) {
    	var B=solution["B"];
        console.log("--------------------------");
        //A and C are just for printing the potential solution
        //they are not needed for the algorithm
    	var A=solution["A"];
    	var C=solution["C"];
        console.log("checking: "+A+" "+B+" "+C);
        //we assume that the solution is valid, until it isn't anymore.
        var abort_solution=false;
        //now we check every constraint for the current potential solution
        for(var constraint of constraints) {
            var index=constraint["index"];
            var who_says=constraint["who_says"];
            var B_is=constraint["B_is"];
            //check 1: truth is not allowed to lie about B
            if(solution[who_says]=="truth" && B!==B_is) {
                console.log("violation of constraint ("+index+
                    "); truth is not allowed to lie and say that "+B+" is "+B_is);
                abort_solution=true;
                break;
            }
            //check 2: liar is not allowed to tell the truth about
            if(solution[who_says]=="liar" && B==B_is) {
                console.log("violation of constraint ("+index+
                    "); liar is not allowed to tell the truth and say that "+B+" is "+B_is);
                abort_solution=true;
                break;
            }
            //we cannot check random; so, no check for that one
        }
        if(!abort_solution) console.log("found legitimate solution");
    }
    console.log("--------------------------");
    

    The output:

    $ ./truth-liar-random.js
    --------------------------
    checking: truth liar random
    violation of constraint (a); truth is not allowed to lie and say that liar is truth
    --------------------------
    checking: liar truth random
    violation of constraint (a); liar is not allowed to tell the truth and say that truth is truth
    --------------------------
    checking: random truth liar
    violation of constraint (b); truth is not allowed to lie and say that truth is random
    --------------------------
    checking: random liar truth
    found legitimate solution
    --------------------------
    checking: truth random liar
    violation of constraint (a); truth is not allowed to lie and say that random is truth
    --------------------------
    checking: liar random truth
    violation of constraint (c); truth is not allowed to lie and say that random is liar
    --------------------------

    It is not limited to first-order logic, because that would disallow the use of the arrays and objects in the solutionSpace and constraints variables. So, it makes use of second-order logic.
  • RussellA
    2.6k
    Then I asked yesterday if A was ambiguous or just contradictory. The debate remains.javi2541997

    Suppose Person A says "the Tower Bridge is in London and the Taj Mahal is in Spain".

    When he says "the Tower Bridge is in London", we describe them as a "Truth Teller", and when he says "the Taj Mahal is in Spain", we describe them as a "Liar".

    Person A can only have two positions, either that of a "Truth Teller" or that of a "Liar", but only at different times, in that he cannot be a "Truth Teller" and "Liar" at the same time.

    Similarly, that a train may be in Paris at one moment in time and in Lyon at another moment in time doesn't make the train either contradictory or ambiguous.
  • flannel jesus
    2.9k


    Honestly it just doesn't seem like he gets it. He says the debate remains, but to everyone else it's really clear.

    A sometimes tells the truth, but he's lying in this case. No ambiguity about the answer, it's clearly solvable in just a minute.

    I'm personally amazed that he's made such a simple riddle last 3 pages, when nobody else has any question about what the answer is.
  • Deleted User
    0
    This user has been deleted and all their posts removed.
  • flannel jesus
    2.9k
    So (B∨¬B) is False, it is always the case that ¬B.Lionino

    I just saw this in your post above and classically that's not how logic goes. B v ~B is true even if we know the answer is ~B

    I kinda see what you were going for but I don't think the symbolic logic application made it work properly, which is I guess what you're saying here

    https://thephilosophyforum.com/discussion/comment/917298
  • Deleted User
    0
    This user has been deleted and all their posts removed.
  • flannel jesus
    2.9k
    yeah I edited my post as you were writing that, I realize that's what you mean
  • javi2541997
    7.2k
    I'm personally amazed that he's made such a simple riddle last 3 pages, when nobody else has any question about what the answer is.flannel jesus

    Be honest, you're having as much fun with this thread as a child in the park with a big red balloon. :smile:
  • flannel jesus
    2.9k
    ok I am.

    I still don't get why the answer everyone else is giving isn't satisfying to you.
  • javi2541997
    7.2k
    I still don't get why the answer everyone else is giving isn't satisfying to you.flannel jesus

    Of course their answers (including yours) please me. But I'm keeping up with postings and questions because I want to learn how to apply logic. We are all welcome to ask questions. I promise that I am not trolling any of you.
  • flannel jesus
    2.9k
    But is the logic not already clear? You first prove that C can be the only one who always tells the truth, and since C is always telling the truth, B must always lie and A must sometimes tell the truth, sometimes lie.

    What's left in the base scenario to figure out?
  • javi2541997
    7.2k
    I understand it now, but not when I first posted this OP. Perhaps it is simple and clear for you, but not for me. One of the demands in my post was for someone to correct me if necessary because I wanted to learn and grasp everything through examples and "formulations."You thought I was trolling. I promise you I wasn't. I always posted with proper behavior.
  • flannel jesus
    2.9k
    But I'm asking you now, what's left unclear? I understand you didn't start out with clarity, but we're not where we started, so what's left unclear?
  • javi2541997
    7.2k
    There is nothing unclear. After the recent posts and examples (@RussellA’s one was very good), I now see the point of the riddle. It was funny to talk and debate about it. 

    Basically, it was my first attempt to put logic into practice. I decided to start with a basic riddle. My intention is to level up in the future.
  • Deleted User
    0
    This user has been deleted and all their posts removed.
  • Deleted User
    0
    This user has been deleted and all their posts removed.
  • javi2541997
    7.2k
    I can only say that I appreciate your help in this thread, Lionino. I like the first post more than the second because it is clearer. You know, when AI shows up, everything becomes unnecessarily complex. By the way, I am not entitled to argue or agree with those formulations because I am not good enough at logic. I hope better users read that and can provide some fruitful answers or feedback. 
123Next
bold
italic
underline
strike
code
quote
ulist
image
url
mention
reveal
youtube
tweet
Add a Comment