;;; Dribble file "less" started
==================================================
Step 1 [1]
 
?- what? * (all x
     natnum
     (some y
           natnum
           ((~ (>= 0 x)) -> (> x y))))
 
TT0>> answer-sequent 
==================================================
Step 2 [2]
 
?- what? * (all x
     natnum
     (some y
           natnum
           ((~ (>= 0 x)) -> (> x y))))
 
TT0>> natnum-induction 
==================================================
Step 3 [3]
 
?- 142? * (some y
      natnum
      ((~ (>= 0 0)) -> (> 0 y)))
 
TT0>> some-right 
==================================================
Step 4 [4]
 
?- 223? * ((~ (>= 0 0)) -> (> 0 226?))
 
TT0>> ->-right 
==================================================
Step 5 [4] 
 
?- 301? * (> 0 226?)
 
1. t22622 * (~ (>= 0 0))

TT0>> rewrite elim-~ 1 
==================================================
Step 6 [4] 
 
?- 301? * (> 0 226?)
 
1. t22622 * ((>= 0 0) -> void)

TT0>> absurd 
==================================================
Step 7 [4] 
 
?- 549? * void
 
1. t22622 * ((>= 0 0) -> void)

TT0>> ->-left 
==================================================
Step 8 [5] 
 
?- 619? * (623? -> void)
 
1. t22622 * ((>= 0 0) -> void)

TT0>> xtt 
==================================================
Step 9 [4] 
 
?- 622? * (>= 0 0)
 
1. t22622 * ((>= 0 0) -> void)

TT0>> >=-base 
==================================================
Step 10 [4] 
 
?- 0 * natnum
 
1. t22622 * ((>= 0 0) -> void)

TT0>> 0-natnum 
==================================================
Step 11 [3]
 
?- 226? * natnum
 
TT0>> 0-natnum 
==================================================
Step 12 [2]
 
?- 145? * (all x
     natnum
     ((some y
            natnum
            ((~ (>= 0 x)) -> (> x y)))
       ->
       (some y
             natnum
             ((~ (>= 0 (succ x))) -> (> (succ x) y)))))
 
TT0>> all-right 
==================================================
Step 13 [2] 
 
?- ((/. 1260? natnum 1262?) t22623) * ((some y
       natnum
       ((~ (>= 0 t22623)) -> (> t22623 y)))
  ->
  (some y
        natnum
        ((~ (>= 0 (succ t22623))) ->
                                  (> (succ t22623) y))))
 
1. t22623 * natnum

TT0>> ->-left 
==================================================
Step 14 [3] 
 
?- (/. 1260? natnum 1262?) * (1340? ->
       ((some y
              natnum
              ((~ (>= 0 t22623)) -> (> t22623 y)))
         ->
         (some y
               natnum
               ((~ (>= 0 (succ t22623))) ->
                                         (> (succ t22623) y)))))
 
1. t22623 * natnum

TT0>> ->-right 
==================================================
Step 15 [3] 
 
?- 1262? * ((some y
       natnum
       ((~ (>= 0 t22623)) -> (> t22623 y)))
  ->
  (some y
        natnum
        ((~ (>= 0 (succ t22623))) ->
                                  (> (succ t22623) y))))
 
1. t22624 * natnum
2. t22623 * natnum

TT0>> ->-right 
==================================================
Step 16 [3] 
 
?- 1488? * (some y
      natnum
      ((~ (>= 0 (succ t22623))) ->
                                (> (succ t22623) y)))
 
1. t22625 * (some y
      natnum
      ((~ (>= 0 t22623)) -> (> t22623 y)))
2. t22624 * natnum
3. t22623 * natnum

TT0>> some-right 
==================================================
Step 17 [4] 
 
?- 1562? * ((~ (>= 0 (succ t22623))) ->
                          (> (succ t22623) 1565?))
 
1. t22625 * (some y
      natnum
      ((~ (>= 0 t22623)) -> (> t22623 y)))
2. t22624 * natnum
3. t22623 * natnum

TT0>> ->-right 
==================================================
Step 18 [4] 
 
?- 1640? * (> (succ t22623) 1565?)
 
1. t22626 * (~ (>= 0 (succ t22623)))
2. t22625 * (some y
      natnum
      ((~ (>= 0 t22623)) -> (> t22623 y)))
3. t22624 * natnum
4. t22623 * natnum

TT0>> rewrite elim> 0 
==================================================
Step 19 [4] 
 
?- 1640? * ((>= (succ t22623) 1565?) &
                          (~ (>= 1565? (succ t22623))))
 
1. t22626 * (~ (>= 0 (succ t22623)))
2. t22625 * (some y
      natnum
      ((~ (>= 0 t22623)) -> (> t22623 y)))
3. t22624 * natnum
4. t22623 * natnum

TT0>> &-right 
==================================================
Step 20 [5] 
 
?- 1886? * (>= (succ t22623) 1565?)
 
1. t22626 * (~ (>= 0 (succ t22623)))
2. t22625 * (some y
      natnum
      ((~ (>= 0 t22623)) -> (> t22623 y)))
3. t22624 * natnum
4. t22623 * natnum

TT0>> >=-ind 
==================================================
Step 21 [7] 
 
?- t22623 * natnum
 
1. t22626 * (~ (>= 0 (succ t22623)))
2. t22625 * (some y
      natnum
      ((~ (>= 0 t22623)) -> (> t22623 y)))
3. t22624 * natnum
4. t22623 * natnum

TT0>> xtt 
==================================================
Step 22 [6] 
 
?- 1565? * natnum
 
1. t22626 * (~ (>= 0 (succ t22623)))
2. t22625 * (some y
      natnum
      ((~ (>= 0 t22623)) -> (> t22623 y)))
3. t22624 * natnum
4. t22623 * natnum

TT0>> rotate 1 2 
==================================================
Step 23 [6] 
 
?- 1886? * (>= t22623 1565?)
 
1. t22626 * (~ (>= 0 (succ t22623)))
2. t22625 * (some y
      natnum
      ((~ (>= 0 t22623)) -> (> t22623 y)))
3. t22624 * natnum
4. t22623 * natnum

TT0>> >=-base 
==================================================
Step 24 [6] 
 
?- t22623 * natnum
 
1. t22626 * (~ (>= 0 (succ t22623)))
2. t22625 * (some y
      natnum
      ((~ (>= 0 t22623)) -> (> t22623 y)))
3. t22624 * natnum
4. t22623 * natnum

TT0>> xtt 
==================================================
Step 25 [5] 
 
?- t22623 * natnum
 
1. t22626 * (~ (>= 0 (succ t22623)))
2. t22625 * (some y
      natnum
      ((~ (>= 0 t22623)) -> (> t22623 y)))
3. t22624 * natnum
4. t22623 * natnum

TT0>> xtt 
==================================================
Step 26 [4] 
 
?- 1889? * (~ (>= t22623 (succ t22623)))
 
1. t22626 * (~ (>= 0 (succ t22623)))
2. t22625 * (some y
      natnum
      ((~ (>= 0 t22623)) -> (> t22623 y)))
3. t22624 * natnum
4. t22623 * natnum

TT0>> rewrite elim-~ 0 
==================================================
Step 27 [4] 
 
?- 1889? * ((>= t22623 (succ t22623)) -> void)
 
1. t22626 * (~ (>= 0 (succ t22623)))
2. t22625 * (some y
      natnum
      ((~ (>= 0 t22623)) -> (> t22623 y)))
3. t22624 * natnum
4. t22623 * natnum

TT0>> ->-right 
==================================================
Step 28 [4] 
 
?- 2844? * void
 
1. t22627 * (>= t22623 (succ t22623))
2. t22626 * (~ (>= 0 (succ t22623)))
3. t22625 * (some y
      natnum
      ((~ (>= 0 t22623)) -> (> t22623 y)))
4. t22624 * natnum
5. t22623 * natnum

TT0>> >=-void 
==================================================
Step 29 [5] 
 
?- 2844? * ((>= 2918? (succ 2918?)) v (~ (>= 2918? 0)))
 
1. t22627 * (>= t22623 (succ t22623))
2. t22626 * (~ (>= 0 (succ t22623)))
3. t22625 * (some y
      natnum
      ((~ (>= 0 t22623)) -> (> t22623 y)))
4. t22624 * natnum
5. t22623 * natnum

TT0>> v-right1 
==================================================
Step 30 [5] 
 
?- 2990? * (>= 2918? (succ 2918?))
 
1. t22627 * (>= t22623 (succ t22623))
2. t22626 * (~ (>= 0 (succ t22623)))
3. t22625 * (some y
      natnum
      ((~ (>= 0 t22623)) -> (> t22623 y)))
4. t22624 * natnum
5. t22623 * natnum

TT0>> xtt 
==================================================
Step 31 [4] 
 
?- t22623 * natnum
 
1. t22627 * (>= t22623 (succ t22623))
2. t22626 * (~ (>= 0 (succ t22623)))
3. t22625 * (some y
      natnum
      ((~ (>= 0 t22623)) -> (> t22623 y)))
4. t22624 * natnum
5. t22623 * natnum

TT0>> xtt 
==================================================
Step 32 [3] 
 
?- t22623 * natnum
 
1. t22625 * (some y
      natnum
      ((~ (>= 0 t22623)) -> (> t22623 y)))
2. t22624 * natnum
3. t22623 * natnum

TT0>> xtt 
==================================================
Step 33 [2] 
 
?- t22623 * natnum
 
1. t22623 * natnum

TT0>> xtt 
==================================================
Step 34 [1] 
 
?- (/. x
    natnum
    (prim x
          (tuple 0
                 (/. t22622
                     (~ (>= 0 0))
                     (abort (t22622 triv))))
          (/. t22624
              natnum
              (subst t22624
                     t22623
                     (/. t22625
                         (some y
                               natnum
                               ((~ (>= 0 t22623)) ->
                                                  (> t22623 y)))
                         (tuple t22623
                                (/. t22626
                                    (~ (>= 0 (succ t22623)))
                                    (tuple triv
                                           (/. t22627
                                               (>= t22623
                                                   (succ t22623))
                                               (inl t22627)))))))))) * (all x
     natnum
     (some y
           natnum
           ((~ (>= 0 x)) -> (> x y))))
 
1. (/. x
    natnum
    (prim x
          (tuple 0
                 (/. t22622
                     (~ (>= 0 0))
                     (abort (t22622 triv))))
          (/. t22624
              natnum
              (subst t22624
                     t22623
                     (/. t22625
                         (some y
                               natnum
                               ((~ (>= 0 t22623)) ->
                                                  (> t22623 y)))
                         (tuple t22623
                                (/. t22626
                                    (~ (>= 0 (succ t22623)))
                                    (tuple triv
                                           (/. t22627
                                               (>= t22623
                                                   (succ t22623))
                                               (inl t22627)))))))))) * (all x
     natnum
     (some y
           natnum
           ((~ (>= 0 x)) -> (> x y))))

TT0>> xtt 
;;; Dribble file "less" finished

(define le 
  x -> (head (prim x 
                   (tuple 0 (/. (e) (abort (funcall e triv)))) 
(/. (e f) (tuple e (/. (g) (tuple triv (/. (h) (inl h)))))))))

