theorem Th46: (p => q) => (p => r => (r => p => (r => q))) is ctaut
  proof
    let g;
    set v = VAL g;
A1: v.p = 1 or v.p = 0 by XBOOLEAN:def 3;
A2: v.r = 1 or v.r = 0 by XBOOLEAN:def 3;
A3: v.(p => r => (r => p => (r => q)))
    = v.(p => r) => v.(r => p => (r => q)) by LTLAXIO1:def 15
    .= (v.p => v.r) => v.(r => p => (r => q)) by LTLAXIO1:def 15
    .= (v.p => v.r) => (v.(r => p) => v.(r => q)) by LTLAXIO1:def 15
    .= (v.p => v.r) => (v.r => v.p => v.(r => q)) by LTLAXIO1:def 15
    .= (v.p => v.r) => (v.r => v.p => (v.r => v.q)) by LTLAXIO1:def 15;
A4: v.q = 1 or v.q = 0 by XBOOLEAN:def 3;
    v.(p => q) = v.p => v.q by LTLAXIO1:def 15;
    hence v.((p => q) => (p => r => (r => p => (r => q))))
    = (v.p => v.q) => ((v.p => v.r) => (v.r => v.p => (v.r => v.q)))
    by LTLAXIO1:def 15,A3
    .= 1 by A1,A2,A4;
  end;
