| Step | Hyp | Ref | Expression | 
|---|
        
          | 1 |  | addcan1 | a + c = b + c <-> a = b | 
        
          | 2 |  | prlem2 | a, c <= b, d -> a + c <= b + d | 
        
          | 3 |  | eqle | a, c = b, d -> a, c <= b, d | 
        
          | 4 | 2, 3 | syl | a, c = b, d -> a + c <= b + d | 
        
          | 5 |  | prlem2 | b, d <= a, c -> b + d <= a + c | 
        
          | 6 |  | eqler | a, c = b, d -> b, d <= a, c | 
        
          | 7 | 5, 6 | syl | a, c = b, d -> b + d <= a + c | 
        
          | 8 | 4, 7 | leasymd | a, c = b, d -> a + c = b + d | 
        
          | 9 |  | addcan2 | b + c = b + d <-> c = d | 
        
          | 10 |  | addcan2 | (b + d) * suc (b + d) // 2 + c = (b + d) * suc (b + d) // 2 + d <-> c = d | 
        
          | 11 |  | id | a + c = b + d -> a + c = b + d | 
        
          | 12 |  | suceq | a + c = b + d -> suc (a + c) = suc (b + d) | 
        
          | 13 | 11, 12 | muleqd | a + c = b + d -> (a + c) * suc (a + c) = (b + d) * suc (b + d) | 
        
          | 14 | 13 | diveq1d | a + c = b + d -> (a + c) * suc (a + c) // 2 = (b + d) * suc (b + d) // 2 | 
        
          | 15 | 14 | addeq1d | a + c = b + d -> (a + c) * suc (a + c) // 2 + c = (b + d) * suc (b + d) // 2 + c | 
        
          | 16 | 15 | eqeq1d | a + c = b + d -> ((a + c) * suc (a + c) // 2 + c = (b + d) * suc (b + d) // 2 + d <-> (b + d) * suc (b + d) // 2 + c = (b + d) * suc (b + d) // 2 + d) | 
        
          | 17 | 8, 16 | rsyl | a, c = b, d -> ((a + c) * suc (a + c) // 2 + c = (b + d) * suc (b + d) // 2 + d <-> (b + d) * suc (b + d) // 2 + c = (b + d) * suc (b + d) // 2 + d) | 
        
          | 18 |  | id | a, c = b, d -> a, c = b, d | 
        
          | 19 | 18 | conv pr | a, c = b, d -> (a + c) * suc (a + c) // 2 + c = (b + d) * suc (b + d) // 2 + d | 
        
          | 20 | 17, 19 | mpbid | a, c = b, d -> (b + d) * suc (b + d) // 2 + c = (b + d) * suc (b + d) // 2 + d | 
        
          | 21 | 10, 20 | sylib | a, c = b, d -> c = d | 
        
          | 22 | 9, 21 | sylibr | a, c = b, d -> b + c = b + d | 
        
          | 23 | 8, 22 | eqtr4d | a, c = b, d -> a + c = b + c | 
        
          | 24 | 1, 23 | sylib | a, c = b, d -> a = b | 
        
          | 25 | 24, 21 | iand | a, c = b, d -> a = b /\ c = d | 
        
          | 26 |  | anl | a = b /\ c = d -> a = b | 
        
          | 27 |  | anr | a = b /\ c = d -> c = d | 
        
          | 28 | 26, 27 | preqd | a = b /\ c = d -> a, c = b, d | 
        
          | 29 | 25, 28 | ibii | a, c = b, d <-> a = b /\ c = d |