fact: Fixpoint term_ineqR (x y:term) {struct x} : ineq := match x,y with X i, const b => i_gt| X i, X j => nat_ineq i j | X i, ev u v => i_gt | const a, X i => i_lt | ev u v, X i => i_lt | const a, const b => string_ineq a b | const a, ev u v => i_lt | ev u v, const a => i_gt | ev u v, ev r s => match (term_ineqR u r) with i_lt => i_lt | i_eq => term_ineqR v s | i_gt => i_gt end end.