@prefix skolem: <https://eyereasoner.github.io/.well-known/genid/8b98b360-9a70-4845-b52c-c675af60ad01#>.
@prefix r: <http://www.w3.org/2000/10/swap/reason#>.
@prefix : <https://eyereasoner.github.io/eye/reasoning#>.
@prefix log: <http://www.w3.org/2000/10/swap/log#>.
@prefix n3: <http://www.w3.org/2004/06/rei#>.
@prefix var: <http://www.w3.org/2000/10/swap/var#>.

skolem:proof a r:Proof, r:Conjunction;
    r:component skolem:lemma1;
    r:gives {
        :all :got :dinner.
    }.

skolem:lemma1 a r:Inference;
    r:gives {
        :all :got :dinner.
    };
    r:evidence (
        skolem:lemma2
    );
    r:rule skolem:lemma3.

skolem:lemma2 a r:Inference;
    r:gives {
        :all :got :dinner.
    };
    r:evidence (
        [ a r:Fact; r:gives {("thread_create" {
            :person1 :run (0.1 0.1).
        } skolem:t_0 ()) log:pro true}]
        [ a r:Fact; r:gives {("thread_create" {
            :person2 :run (0.2 0.2).
        } skolem:t_1 ()) log:pro true}]
        [ a r:Fact; r:gives {("thread_create" {
            :person3 :run (0.3 0.3).
        } skolem:t_2 ()) log:pro true}]
        [ a r:Fact; r:gives {("thread_create" {
            :person4 :run (0.25 0.2).
        } skolem:t_3 ()) log:pro true}]
        [ a r:Fact; r:gives {("thread_create" {
            :person5 :run (0.025 0.1).
        } skolem:t_4 ()) log:pro true}]
        [ a r:Fact; r:gives {("thread_join" skolem:t_0 true) log:pro true}]
        [ a r:Fact; r:gives {("thread_join" skolem:t_1 true) log:pro true}]
        [ a r:Fact; r:gives {("thread_join" skolem:t_2 true) log:pro true}]
        [ a r:Fact; r:gives {("thread_join" skolem:t_3 true) log:pro true}]
        [ a r:Fact; r:gives {("thread_join" skolem:t_4 true) log:pro true}]
    );
    r:binding [ r:variable [ n3:uri "http://www.w3.org/2000/10/swap/var#x_0"]; r:boundTo skolem:t_0];
    r:binding [ r:variable [ n3:uri "http://www.w3.org/2000/10/swap/var#x_1"]; r:boundTo skolem:t_1];
    r:binding [ r:variable [ n3:uri "http://www.w3.org/2000/10/swap/var#x_2"]; r:boundTo skolem:t_2];
    r:binding [ r:variable [ n3:uri "http://www.w3.org/2000/10/swap/var#x_3"]; r:boundTo skolem:t_3];
    r:binding [ r:variable [ n3:uri "http://www.w3.org/2000/10/swap/var#x_4"]; r:boundTo skolem:t_4];
    r:binding [ r:variable [ n3:uri "http://www.w3.org/2000/10/swap/var#x_5"]; r:boundTo true];
    r:binding [ r:variable [ n3:uri "http://www.w3.org/2000/10/swap/var#x_6"]; r:boundTo true];
    r:binding [ r:variable [ n3:uri "http://www.w3.org/2000/10/swap/var#x_7"]; r:boundTo true];
    r:binding [ r:variable [ n3:uri "http://www.w3.org/2000/10/swap/var#x_8"]; r:boundTo true];
    r:binding [ r:variable [ n3:uri "http://www.w3.org/2000/10/swap/var#x_9"]; r:boundTo true];
    r:rule skolem:lemma4.

skolem:lemma3 a r:Extraction;
    r:gives {
        {
            :all :got :dinner.
        } => {
            :all :got :dinner.
        }.
    };
    r:because [ a r:Parsing; r:source <https://eyereasoner.github.io/eye/reasoning/dining-philosophers/dpQ.n3>].

skolem:lemma4 a r:Extraction;
    r:gives {
        @forAll var:x_0, var:x_1, var:x_2, var:x_3, var:x_4, var:x_5, var:x_6, var:x_7, var:x_8, var:x_9. {
            ("thread_create" {
                :person1 :run (0.1 0.1).
            } var:x_0 ()) log:pro true.
            ("thread_create" {
                :person2 :run (0.2 0.2).
            } var:x_1 ()) log:pro true.
            ("thread_create" {
                :person3 :run (0.3 0.3).
            } var:x_2 ()) log:pro true.
            ("thread_create" {
                :person4 :run (0.25 0.2).
            } var:x_3 ()) log:pro true.
            ("thread_create" {
                :person5 :run (0.025 0.1).
            } var:x_4 ()) log:pro true.
            ("thread_join" var:x_0 var:x_5) log:pro true.
            ("thread_join" var:x_1 var:x_6) log:pro true.
            ("thread_join" var:x_2 var:x_7) log:pro true.
            ("thread_join" var:x_3 var:x_8) log:pro true.
            ("thread_join" var:x_4 var:x_9) log:pro true.
        } => {
            :all :got :dinner.
        }.
    };
    r:because [ a r:Parsing; r:source <https://eyereasoner.github.io/eye/reasoning/dining-philosophers/dp.n3>].

