4.13 Special do cases

Proof by cases attempt on a disjunctive formula

Syntaxe

  dcs(A or B)

with:

Use

This command enables the proof by cases starting up.

If the goal to prove is B and the parameter supplied to dcs is X:

Example

Let us consider the proof by cases, in the case of a disjunctive predicate.

Given the following situation:


 
    Hypothesis  
        xx: INTEGER &  
        0<=xx &  
        xx = 1 or xx = 10 or xx = 4 &  
        btrue &  
        0<=20 &  
        20: INTEGER  
    Goal  
        xx<=20  
 


The user launches a proof by cases to fully use the hypothesis
xx = 1 or xx = 10 or xx = 4.


 
PRI> dcs(xx = 1 or xx = 10 or xx = 4)  
Starting Do Cases  
 


As the disjunctive predicate comes from the hypothesis, it is not necessary to check it. The prover starts three successives proofs:


 
    Goal  
        xx = 4 &  
        not(xx = 10) &  
        not(xx = 1)  
        =>  
        xx<=20  
 
    Goal  
        xx = 10 &  
        not(xx = 4) &  
        not(xx = 1)  
        =>  
        xx<=20  
 
    Goal  
        xx = 1 &  
        not(xx = 4) &  
        not(xx = 10)  
        =>  
        xx<=20  
 


Each of these goals is easily discharged by the pr command (see chapter 4.38 page §).