TRANS : thm -> thm -> thm

SYNOPSIS
Uses transitivity of equality on two equational theorems.

DESCRIPTION
When applied to a theorem A1 |- t1 = t2 and a theorem A2 |- t2' = t3, where t2 and t2' are alpha-equivalent (in particular, where they are identical), the inference rule TRANS returns the theorem A1 u A2 |- t1 = t3.
    A1 |- t1 = t2   A2 |- t2' = t3
   --------------------------------  TRANS
         A1 u A2 |- t1 = t3

FAILURE CONDITIONS
Fails unless the theorems are equational, with the right side of the first being the same as the left side of the second, up to alpha-equivalence.

EXAMPLE
The following shows identical uses of TRANS, one on Boolean equations (shown as <=>) and one on numerical equations.
  # let t1 = ASSUME `a:bool = b` and t2 = ASSUME `b:bool = c`;;
  val t1 : thm = a <=> b |- a <=> b
  val t2 : thm = b <=> c |- b <=> c
  # TRANS t1 t2;;
  val it : thm = a <=> b, b <=> c |- a <=> c

  # let t1 = ASSUME `x:num = 1` and t2 = num_CONV `1`;;
  val t1 : thm = x = 1 |- x = 1
  val t2 : thm = |- 1 = SUC 0
  # TRANS t1 t2;;
  val it : thm = x = 1 |- x = SUC 0

COMMENTS
This is one of HOL Light's 10 primitive inference rules.

SEE ALSO
EQ_MP, IMP_TRANS, REFL, SYM, TRANS_TAC.