%-*-mode:outline;outline-regexp:"[0-9a-z.]+"-*-
. #false(noone_hates_everyone)  [noone_hates_everyone].
  using assumption #false(noone_hates_everyone) :- hates(X1,charles), hates(X1,butler), hates(X1,agatha).
     {X1=butler}
1. hates(butler,charles)  [butler_hates_everybody_agatha_hates].
    using assumption hates(X1,X2) :- __def_5(X2), __def_6(X1).
       {X1=butler,X2=charles}
    and definition __def_5(X1) :- hates(agatha,X1).
       {X1=charles}
    and definition __def_6(butler).
1.1. hates(agatha,charles)  [agatha_hates_charles].
      using assumption hates(X1,X2) :- __def_2(X2), __def_1(X1).
         {X1=agatha,X2=charles}
      and definition __def_2(charles).
      and definition __def_1(agatha).
2. hates(butler,butler)  [butler_hates_everyone_not_richer_than_agatha].
    using assumption hates(X1,X2) :- __def_3(X2), __def_4(X1).
       {X1=butler,X2=butler}
    and definition __def_3(X1) :- not_richer(X1,agatha).
       {X1=butler}
    and definition __def_4(butler).
2.1. not_richer(butler,agatha)  [killer_no_richer].
      using assumption not_richer(X1,X2) :- killed(X1,X2).
         {X1=butler,X2=agatha}
2.1.1. killed(butler,agatha)  [butler_killed_agatha].
        using assumption killed(X1,X2) :- __def_1(X2), __def_7(X1).
           {X1=butler,X2=agatha}
        and definition __def_1(agatha).
        and definition __def_7(butler).
3. hates(butler,agatha)  [butler_hates_everybody_agatha_hates].
    using assumption hates(X1,X2) :- __def_5(X2), __def_6(X1).
       {X1=butler,X2=agatha}
    and definition __def_5(X1) :- hates(agatha,X1).
       {X1=agatha}
    and definition __def_6(butler).
3.1. hates(agatha,agatha)  [agatha_hates_herself].
      using assumption hates(X1,X2) :- __def_1(X2), __def_1(X1).
         {X1=agatha,X2=agatha}
      and definition __def_1(agatha).
      and definition __def_1(agatha).
