%   ORIGINAL: 'h4/thm/list/FOLDL2_ind_'
% Assm: HL_TRUTH: T
% Assm: HL_FALSITY: ~F
% Assm: HL_BOOL_CASES: !t. (t <=> T) \/ (t <=> F)
% Assm: HL_EXT: !f g. (!x. f x = g x) ==> f = g
% Goal: !P. (!f a b bs c cs. P f (f a b c) bs cs ==> P f a ('h4/const/list/CONS' b bs) ('h4/const/list/CONS' c cs)) /\ (!f a cs. P f a 'h4/const/list/NIL' cs) /\ (!f a v6 v7. P f a ('h4/const/list/CONS' v6 v7) 'h4/const/list/NIL') ==> (!v v1 v2 v3. P v v1 v2 v3)
%   PROCESSED
% Assm ['HL_TRUTH']: T
% Assm ['HL_FALSITY']: ~F
% Assm ['HL_BOOL_CASES']: !t. (t <=> T) \/ (t <=> F)
% Assm ['HL_EXT']: !f g. (!x. happ f x = happ g x) ==> f = g
% Goal: !P. (!f a b bs c cs. happ (happ (happ (happ P f) (happ (happ (happ f a) b) c)) bs) cs ==> happ (happ (happ (happ P f) a) ('h4/const/list/CONS' b bs)) ('h4/const/list/CONS' c cs)) /\ (!f a cs. happ (happ (happ (happ P f) a) 'h4/const/list/NIL') cs) /\ (!f a v6 v7. happ (happ (happ (happ P f) a) ('h4/const/list/CONS' v6 v7)) 'h4/const/list/NIL') ==> (!v v1 v2 v3. happ (happ (happ (happ P v) v1) v2) v3)
fof('HL_TRUTH', axiom, p(s(bool,'T'))).
fof('HL_FALSITY', axiom, ~ (p(s(bool,'F')))).
fof('HL_BOOL_CASES', axiom, ![T]: (s(bool,T) = s(bool,'T') | s(bool,T) = s(bool,'F'))).
fof('HL_EXT', axiom, ![V_3f7340,V_3f7336]: ![F, G]: (![X]: s(V_3f7336,happ(s(fun(V_3f7340,V_3f7336),F),s(V_3f7340,X))) = s(V_3f7336,happ(s(fun(V_3f7340,V_3f7336),G),s(V_3f7340,X))) => s(fun(V_3f7340,V_3f7336),F) = s(fun(V_3f7340,V_3f7336),G))).
fof('h4/thm/list/FOLDL2_ind_', conjecture, ![A,B,C]: ![P]: ((![F, A0, B0, Bs, C0, Cs]: (p(s(bool,happ(s(fun('h4/type/list/list'(C),bool),happ(s(fun('h4/type/list/list'(B),fun('h4/type/list/list'(C),bool)),happ(s(fun(A,fun('h4/type/list/list'(B),fun('h4/type/list/list'(C),bool))),happ(s(fun(fun(A,fun(B,fun(C,A))),fun(A,fun('h4/type/list/list'(B),fun('h4/type/list/list'(C),bool)))),P),s(fun(A,fun(B,fun(C,A))),F))),s(A,happ(s(fun(C,A),happ(s(fun(B,fun(C,A)),happ(s(fun(A,fun(B,fun(C,A))),F),s(A,A0))),s(B,B0))),s(C,C0))))),s('h4/type/list/list'(B),Bs))),s('h4/type/list/list'(C),Cs)))) => p(s(bool,happ(s(fun('h4/type/list/list'(C),bool),happ(s(fun('h4/type/list/list'(B),fun('h4/type/list/list'(C),bool)),happ(s(fun(A,fun('h4/type/list/list'(B),fun('h4/type/list/list'(C),bool))),happ(s(fun(fun(A,fun(B,fun(C,A))),fun(A,fun('h4/type/list/list'(B),fun('h4/type/list/list'(C),bool)))),P),s(fun(A,fun(B,fun(C,A))),F))),s(A,A0))),s('h4/type/list/list'(B),'h4/const/list/CONS'(s(B,B0),s('h4/type/list/list'(B),Bs))))),s('h4/type/list/list'(C),'h4/const/list/CONS'(s(C,C0),s('h4/type/list/list'(C),Cs))))))) & (![F, A0, Cs]: p(s(bool,happ(s(fun('h4/type/list/list'(C),bool),happ(s(fun('h4/type/list/list'(B),fun('h4/type/list/list'(C),bool)),happ(s(fun(A,fun('h4/type/list/list'(B),fun('h4/type/list/list'(C),bool))),happ(s(fun(fun(A,fun(B,fun(C,A))),fun(A,fun('h4/type/list/list'(B),fun('h4/type/list/list'(C),bool)))),P),s(fun(A,fun(B,fun(C,A))),F))),s(A,A0))),s('h4/type/list/list'(B),'h4/const/list/NIL'))),s('h4/type/list/list'(C),Cs)))) & ![F, A0, V6, V7]: p(s(bool,happ(s(fun('h4/type/list/list'(C),bool),happ(s(fun('h4/type/list/list'(B),fun('h4/type/list/list'(C),bool)),happ(s(fun(A,fun('h4/type/list/list'(B),fun('h4/type/list/list'(C),bool))),happ(s(fun(fun(A,fun(B,fun(C,A))),fun(A,fun('h4/type/list/list'(B),fun('h4/type/list/list'(C),bool)))),P),s(fun(A,fun(B,fun(C,A))),F))),s(A,A0))),s('h4/type/list/list'(B),'h4/const/list/CONS'(s(B,V6),s('h4/type/list/list'(B),V7))))),s('h4/type/list/list'(C),'h4/const/list/NIL')))))) => ![V, V1, V2, V3]: p(s(bool,happ(s(fun('h4/type/list/list'(C),bool),happ(s(fun('h4/type/list/list'(B),fun('h4/type/list/list'(C),bool)),happ(s(fun(A,fun('h4/type/list/list'(B),fun('h4/type/list/list'(C),bool))),happ(s(fun(fun(A,fun(B,fun(C,A))),fun(A,fun('h4/type/list/list'(B),fun('h4/type/list/list'(C),bool)))),P),s(fun(A,fun(B,fun(C,A))),V))),s(A,V1))),s('h4/type/list/list'(B),V2))),s('h4/type/list/list'(C),V3)))))).
