TPTP Problem File: SWX170^1.p
View Solutions
- Solve Problem
%------------------------------------------------------------------------------
% File : SWX170^1 : TPTP v9.3.0. Released v9.3.0.
% Domain : Software Verification
% Problem : Benchmark: ALG444^1, Active target: hoasinduction_lem3a
% Version : Especial.
% English :
% Refs : [Kon26] Kondylidou (2026), Email to Geoff Sutcliffe
% Source : [Kon26]
% Names : ALG444^1__005__axclos.verify [Kon26]
% Status : Theorem
% Rating : 0.58 v9.3.0
% Syntax : Number of formulae : 132 ( 1 unt; 130 typ; 0 def)
% Number of atoms : 255 ( 129 equ; 0 cnn)
% Maximal formula atoms : 248 ( 127 avg)
% Number of connectives : 2614 ( 333 ~; 306 |; 129 &;1746 @)
% ( 56 <=>; 44 =>; 0 <=; 0 <~>)
% Maximal formula depth : 151 ( 76 avg)
% Number of types : 5 ( 4 usr)
% Number of type conns : 227 ( 227 >; 0 *; 0 +; 0 <<)
% Number of symbols : 127 ( 126 usr; 113 con; 0-4 aty)
% Number of variables : 560 ( 10 ^; 548 !; 2 ?; 560 :)
% SPC : TH0_THM_EQU_NAR
% Comments :
%------------------------------------------------------------------------------
thf(term_type,type,
term: $tType ).
thf(subst_type,type,
subst: $tType ).
thf(one_decl,type,
one: term ).
thf(ap_decl,type,
ap: term > term > term ).
thf(lam_decl,type,
lam: term > term ).
thf(sub_decl,type,
sub: term > subst > term ).
thf(id_decl,type,
id: subst ).
thf(sh_decl,type,
sh: subst ).
thf(push_decl,type,
push: term > subst > subst ).
thf(comp_decl,type,
comp: subst > subst > subst ).
thf(var_decl,type,
var: term > $o ).
thf(pushprop_lem1v2_decl,type,
pushprop_lem1v2: $o ).
thf(pushprop_lem1_gthm_decl,type,
pushprop_lem1_gthm: $o ).
thf(axmap_decl,type,
axmap: $o ).
thf(pushprop_lem0_gthm_decl,type,
pushprop_lem0_gthm: $o ).
thf(shinj_decl,type,
shinj: $o ).
thf(hoasinduction_lem1v2_decl,type,
hoasinduction_lem1v2: $o ).
thf(hoasinduction_lem1v2_gthm_decl,type,
hoasinduction_lem1v2_gthm: $o ).
thf(hoasap_decl,type,
hoasap: subst > term > subst > term > term ).
thf(induction2lem_decl,type,
induction2lem: $o ).
thf(hoasinduction_lem3v2_f_decl,type,
hoasinduction_lem3v2_f: $o ).
thf(axvarshift_decl,type,
axvarshift: $o ).
thf(hoasapinj2_decl,type,
hoasapinj2: $o ).
thf(hoasapnotvar_gthm_decl,type,
hoasapnotvar_gthm: $o ).
thf(hoasapinj1_decl,type,
hoasapinj1: $o ).
thf(ulamvar1_decl,type,
ulamvar1: $o ).
thf(induction2lem_lthm_decl,type,
induction2lem_lthm: $o ).
thf(hoasinduction_lem3v2_gthm_decl,type,
hoasinduction_lem3v2_gthm: $o ).
thf(apnotvar_decl,type,
apnotvar: $o ).
thf(pushprop_lthm_orig_decl,type,
pushprop_lthm_orig: $o ).
thf(hoasinduction_lem3v2_f_lthm_decl,type,
hoasinduction_lem3v2_f_lthm: $o ).
thf(hoasinduction_lthm_decl,type,
hoasinduction_lthm: $o ).
thf(hoasinduction_no_psi_cond_lthm_decl,type,
hoasinduction_no_psi_cond_lthm: $o ).
thf(hoaslaminj_decl,type,
hoaslaminj: $o ).
thf(hoasinduction_lem3aaa_decl,type,
hoasinduction_lem3aaa: $o ).
thf(induction2lem_gthm_decl,type,
induction2lem_gthm: $o ).
thf(hoasinduction_lem3aa_lthm_decl,type,
hoasinduction_lem3aa_lthm: $o ).
thf(hoasinduction_lem3_decl,type,
hoasinduction_lem3: $o ).
thf(hoasinduction_lem2_decl,type,
hoasinduction_lem2: $o ).
thf(termmset_lthm_decl,type,
termmset_lthm: $o ).
thf(hoasinduction_lem1_decl,type,
hoasinduction_lem1: $o ).
thf(hoaslamnotap_lthm_decl,type,
hoaslamnotap_lthm: $o ).
thf(pushprop_lem1v2_lthm_decl,type,
pushprop_lem1v2_lthm: $o ).
thf(hoasapnotvar_decl,type,
hoasapnotvar: $o ).
thf(hoasinduction_lem0_decl,type,
hoasinduction_lem0: $o ).
thf(hoasinduction_decl,type,
hoasinduction: $o ).
thf(hoasinduction_gthm_decl,type,
hoasinduction_gthm: $o ).
thf(axapp_decl,type,
axapp: $o ).
thf(hoaslamnotvar_lthm_decl,type,
hoaslamnotvar_lthm: $o ).
thf(pushprop_lem3v2_lthm_decl,type,
pushprop_lem3v2_lthm: $o ).
thf(hoasinduction_lem3b_lthm_decl,type,
hoasinduction_lem3b_lthm: $o ).
thf(ulamvarind_decl,type,
ulamvarind: $o ).
thf(induction_decl,type,
induction: $o ).
thf(hoasinduction_lem3a_lthm_decl,type,
hoasinduction_lem3a_lthm: $o ).
thf(termmset_gthm_decl,type,
termmset_gthm: $o ).
thf(hoasinduction_lem3aa_decl,type,
hoasinduction_lem3aa: $o ).
thf(pushprop_lem1v2_gthm_decl,type,
pushprop_lem1v2_gthm: $o ).
thf(hoaslamnotap_gthm_decl,type,
hoaslamnotap_gthm: $o ).
thf(hoaslamnotvar_gthm_decl,type,
hoaslamnotvar_gthm: $o ).
thf(hoasinduction_lem3b_gthm_decl,type,
hoasinduction_lem3b_gthm: $o ).
thf(pushprop_lem2v2_decl,type,
pushprop_lem2v2: $o ).
thf(hoasinduction_lem3a_gthm_decl,type,
hoasinduction_lem3a_gthm: $o ).
thf(axclos_decl,type,
axclos: $o ).
thf(axassoc_decl,type,
axassoc: $o ).
thf(hoasinduction_lem2v2_decl,type,
hoasinduction_lem2v2: $o ).
thf(pushprop_lthm_decl,type,
pushprop_lthm: $o ).
thf(apinj2_decl,type,
apinj2: $o ).
thf(apinj1_decl,type,
apinj1: $o ).
thf(hoasapinj2_lthm_decl,type,
hoasapinj2_lthm: $o ).
thf(hoasinduction_lem3v2a_decl,type,
hoasinduction_lem3v2a: $o ).
thf(hoasapinj1_lthm_decl,type,
hoasapinj1_lthm: $o ).
thf(hoaslaminj_lthm_decl,type,
hoaslaminj_lthm: $o ).
thf(axvarcons_decl,type,
axvarcons: $o ).
thf(hoaslam_decl,type,
hoaslam: subst > ( subst > term > term ) > term ).
thf(axscons_decl,type,
axscons: $o ).
thf(hoasinduction_lem2v2_gthm_decl,type,
hoasinduction_lem2v2_gthm: $o ).
thf(axidr_decl,type,
axidr: $o ).
thf(pushprop_lem1_decl,type,
pushprop_lem1: $o ).
thf(laminj_decl,type,
laminj: $o ).
thf(hoasinduction_lem3_lthm_decl,type,
hoasinduction_lem3_lthm: $o ).
thf(pushprop_lem0_decl,type,
pushprop_lem0: $o ).
thf(pushprop_gthm_decl,type,
pushprop_gthm: $o ).
thf(axabs_decl,type,
axabs: $o ).
thf(hoasinduction_lem3v2a_lthm_decl,type,
hoasinduction_lem3v2a_lthm: $o ).
thf(hoasinduction_lem2_lthm_decl,type,
hoasinduction_lem2_lthm: $o ).
thf(hoasapinj2_gthm_decl,type,
hoasapinj2_gthm: $o ).
thf(hoasinduction_p_and_p_prime_decl,type,
hoasinduction_p_and_p_prime: ( subst > term > subst > $o ) > ( term > $o ) > $o ).
thf(hoasinduction_lem1_lthm_decl,type,
hoasinduction_lem1_lthm: $o ).
thf(lamnotap_decl,type,
lamnotap: $o ).
thf(hoasapinj1_gthm_decl,type,
hoasapinj1_gthm: $o ).
thf(hoaslamnotvar_decl,type,
hoaslamnotvar: $o ).
thf(axidl_decl,type,
axidl: $o ).
thf(hoaslaminj_gthm_decl,type,
hoaslaminj_gthm: $o ).
thf(induction2_lthm_decl,type,
induction2_lthm: $o ).
thf(hoasinduction_lem0_lthm_decl,type,
hoasinduction_lem0_lthm: $o ).
thf(substmonoid_lthm_decl,type,
substmonoid_lthm: $o ).
thf(pushprop_decl,type,
pushprop: $o ).
thf(hoasinduction_lem3_gthm_decl,type,
hoasinduction_lem3_gthm: $o ).
thf(hoasinduction_lem2_gthm_decl,type,
hoasinduction_lem2_gthm: $o ).
thf(hoasinduction_lem3b_decl,type,
hoasinduction_lem3b: $o ).
thf(substmonoid_decl,type,
substmonoid: $o ).
thf(lamnotvar_decl,type,
lamnotvar: $o ).
thf(hoasinduction_lem3a_decl,type,
hoasinduction_lem3a: $o ).
thf(hoasinduction_lem1_gthm_decl,type,
hoasinduction_lem1_gthm: $o ).
thf(hoasinduction_no_psi_cond_decl,type,
hoasinduction_no_psi_cond: $o ).
thf(induction2_gthm_decl,type,
induction2_gthm: $o ).
thf(pushprop_lem2v2_lthm_decl,type,
pushprop_lem2v2_lthm: $o ).
thf(hoasvar_decl,type,
hoasvar: subst > term > subst > $o ).
thf(hoaslamnotap_decl,type,
hoaslamnotap: $o ).
thf(substmonoid_gthm_decl,type,
substmonoid_gthm: $o ).
thf(ulamvarsh_decl,type,
ulamvarsh: $o ).
thf(induction2_decl,type,
induction2: $o ).
thf(pushprop_lem3v2_decl,type,
pushprop_lem3v2: $o ).
thf(pushprop_lem2v2_gthm_decl,type,
pushprop_lem2v2_gthm: $o ).
thf(pushprop_lem1_lthm_decl,type,
pushprop_lem1_lthm: $o ).
thf(hoasinduction_lem3v2_decl,type,
hoasinduction_lem3v2: $o ).
thf(axshiftcons_decl,type,
axshiftcons: $o ).
thf(termmset_decl,type,
termmset: $o ).
thf(pushprop_lem0_lthm_decl,type,
pushprop_lem0_lthm: $o ).
thf(hoasapnotvar_lthm_decl,type,
hoasapnotvar_lthm: $o ).
thf(hoasinduction_lem3v2_lthm_decl,type,
hoasinduction_lem3v2_lthm: $o ).
thf(pushprop_p_and_p_prime_decl,type,
pushprop_p_and_p_prime: term > subst > ( term > $o ) > ( term > $o ) > $o ).
thf(axvarid_decl,type,
axvarid: $o ).
thf(hoasinduction_lthm_3_decl,type,
hoasinduction_lthm_3: $o ).
%----Types of the domains
thf(d_term_type,type,
d_term: $tType ).
thf(d_subst_type,type,
d_subst: $tType ).
%----Types of the promotion functions
thf(d2term_decl,type,
d2term: d_term > term ).
thf(d2subst_decl,type,
d2subst: d_subst > subst ).
%----Types of the domain elements
thf(d_one_decl,type,
d_one: d_term ).
thf(d_id_decl,type,
d_id: d_subst ).
thf(alg444_1,axiom,
( ! [T: term] :
? [DT: d_term] :
( T
= ( d2term @ DT ) )
& ! [DT: d_term] : ( DT = d_one )
& ! [DT1: d_term,DT2: d_term] :
( ( ( d2term @ DT1 )
= ( d2term @ DT2 ) )
=> ( DT1 = DT2 ) )
& ! [S: subst] :
? [DS: d_subst] :
( S
= ( d2subst @ DS ) )
& ! [DS: d_subst] : ( DS = d_id )
& ! [DS1: d_subst,DS2: d_subst] :
( ( ( d2subst @ DS1 )
= ( d2subst @ DS2 ) )
=> ( DS1 = DS2 ) )
& ( one
= ( d2term @ d_one ) )
& ( ( ap @ ( d2term @ d_one ) @ ( d2term @ d_one ) )
= ( d2term @ d_one ) )
& ( ( lam @ ( d2term @ d_one ) )
= ( d2term @ d_one ) )
& ( ( sub @ ( d2term @ d_one ) @ ( d2subst @ d_id ) )
= ( d2term @ d_one ) )
& ( id
= ( d2subst @ d_id ) )
& ( sh
= ( d2subst @ d_id ) )
& ( ( push @ ( d2term @ d_one ) @ ( d2subst @ d_id ) )
= ( d2subst @ d_id ) )
& ( ( comp @ ( d2subst @ d_id ) @ ( d2subst @ d_id ) )
= ( d2subst @ d_id ) )
& ( ( hoasap @ ( d2subst @ d_id ) @ ( d2term @ d_one ) @ ( d2subst @ d_id ) @ ( d2term @ d_one ) )
= ( d2term @ d_one ) )
& ( hoaslam
= ( ^ [Bound_variable_4913: subst,Bound_variable_4915: subst > term > term] : ( d2term @ d_one ) ) )
& ( hoasinduction_p_and_p_prime
= ( ^ [P: subst > term > subst > $o,Q: term > $o] :
! [X: term] :
( ( Q @ X )
= ( P @ id @ X @ id ) ) ) )
& ( pushprop_p_and_p_prime
= ( ^ [A: term,M: subst,P: term > $o,Q: term > $o] :
! [X: term] :
( ( Q @ X )
= ( P @ ( sub @ X @ ( push @ A @ M ) ) ) ) ) )
& ~ ( var @ ( d2term @ d_one ) )
& ( pushprop_lem1v2
<=> ! [P: term > $o,Q: term > $o,A: term,M: subst] :
( ~ ( P @ A )
| ~ ! [X: term] :
( ( Q @ X )
= ( P @ ( sub @ X @ ( push @ A @ M ) ) ) )
| ( Q @ one ) ) )
& pushprop_lem1_gthm
& axmap
& pushprop_lem0_gthm
& ( shinj
<=> ! [A: term,B: term] :
( ( ( sub @ A @ sh )
!= ( sub @ B @ sh ) )
| ( A = B ) ) )
& hoasinduction_lem1v2
& hoasinduction_lem1v2_gthm
& ( induction2lem
<=> ! [P: term > $o,Bound_variable_2340: term,Bound_variable_2342: subst] :
( ~ ! [A: term,B: term] :
( ~ ( P @ A )
| ~ ( P @ B )
| ( P @ ( ap @ A @ B ) ) )
| ~ ! [A: term] :
( ~ ! [B: term] :
( ~ ( P @ B )
| ( P @ ( sub @ A @ ( push @ B @ id ) ) ) )
| ( P @ ( lam @ A ) ) )
| ~ ! [B: term] :
( ~ ( var @ B )
| ( P @ ( sub @ B @ Bound_variable_2342 ) ) )
| ( P @ ( sub @ Bound_variable_2340 @ Bound_variable_2342 ) ) ) )
& ( hoasinduction_lem3v2_f
<=> ! [B: term] :
~ ! [F: subst > term > term] :
~ ! [A: term,M: subst] :
( ( sub @ B @ ( push @ A @ M ) )
= ( F @ M @ A ) ) )
& axvarshift
& ( hoasapinj2
<=> ! [A: term,B: term,C: term,D: term] :
( ( ( ap @ ( sub @ A @ id ) @ C )
!= ( ap @ ( sub @ B @ id ) @ D ) )
| ( C = D ) ) )
& hoasapnotvar_gthm
& ( hoasapinj1
<=> ! [A: term,B: term,C: term,D: term] :
( ( ( ap @ ( sub @ A @ id ) @ C )
!= ( ap @ ( sub @ B @ id ) @ D ) )
| ( A = B ) ) )
& ~ ulamvar1
& ( induction2lem_lthm
<=> ( ! [A: term,M: subst] :
( A
= ( sub @ one @ ( push @ A @ M ) ) )
=> ( ! [A: term,M: subst] :
( M
= ( comp @ sh @ ( push @ A @ M ) ) )
=> ( ! [M: subst] :
( M
= ( comp @ M @ id ) )
=> ( ! [P: term > $o,Bound_variable_2140: term] :
( ~ ! [A: term] :
( ~ ( var @ A )
| ( P @ A ) )
| ~ ! [A: term,B: term] :
( ~ ( P @ A )
| ~ ( P @ B )
| ( P @ ( ap @ A @ B ) ) )
| ~ ! [A: term] :
( ~ ( P @ A )
| ( P @ ( lam @ A ) ) )
| ( P @ Bound_variable_2140 ) )
=> ! [P: term > $o,Bound_variable_2340: term,Bound_variable_2342: subst] :
( ~ ! [A: term,B: term] :
( ~ ( P @ A )
| ~ ( P @ B )
| ( P @ ( ap @ A @ B ) ) )
| ~ ! [A: term] :
( ~ ! [B: term] :
( ~ ( P @ B )
| ( P @ ( sub @ A @ ( push @ B @ id ) ) ) )
| ( P @ ( lam @ A ) ) )
| ~ ! [B: term] :
( ~ ( var @ B )
| ( P @ ( sub @ B @ Bound_variable_2342 ) ) )
| ( P @ ( sub @ Bound_variable_2340 @ Bound_variable_2342 ) ) ) ) ) ) ) )
& hoasinduction_lem3v2_gthm
& apnotvar
& pushprop_lthm_orig
& ( hoasinduction_lem3v2_f_lthm
<=> ! [B: term] :
~ ! [F: subst > term > term] :
~ ! [A: term,M: subst] :
( ( sub @ B @ ( push @ A @ M ) )
= ( F @ M @ A ) ) )
& ( hoasinduction_lthm
<=> ( ! [P: term > $o,Bound_variable_2367: term] :
( ~ ! [A: term] :
( ~ ( var @ A )
| ( P @ A ) )
| ~ ! [A: term,B: term] :
( ~ ( P @ A )
| ~ ( P @ B )
| ( P @ ( ap @ A @ B ) ) )
| ~ ! [A: term] :
( ~ ! [B: term] :
( ~ ( P @ B )
| ( P @ ( sub @ A @ ( push @ B @ id ) ) ) )
| ( P @ ( lam @ A ) ) )
| ( P @ Bound_variable_2367 ) )
=> ( ! [P: subst > term > subst > $o,Bound_variable_2999: term,Bound_variable_3001: term] :
( ~ ! [M: subst,A: term,N: subst,K: subst] :
( ~ ( P @ M @ A @ ( comp @ K @ N ) )
| ( P @ ( comp @ M @ K ) @ ( sub @ A @ K ) @ N ) )
| ~ ! [M: subst,A: term,N: subst,K: subst] :
( ~ ( P @ ( comp @ M @ K ) @ ( sub @ A @ K ) @ N )
| ( P @ M @ A @ ( comp @ K @ N ) ) )
| ~ ! [A: term,B: term] :
( ~ ( P @ id @ A @ id )
| ~ ( P @ id @ B @ id )
| ( P @ id @ ( ap @ ( sub @ A @ id ) @ B ) @ id ) )
| ~ ( P @ id @ Bound_variable_2999 @ id )
| ~ ( P @ id @ Bound_variable_3001 @ id )
| ( P @ id @ ( ap @ Bound_variable_2999 @ Bound_variable_3001 ) @ id ) )
=> ( ! [P: subst > term > subst > $o,Bound_variable_3211: term] :
( ~ ! [M: subst,A: term,N: subst,K: subst] :
( ~ ( P @ M @ A @ ( comp @ K @ N ) )
| ( P @ ( comp @ M @ K ) @ ( sub @ A @ K ) @ N ) )
| ~ ! [M: subst,A: term,N: subst,K: subst] :
( ~ ( P @ ( comp @ M @ K ) @ ( sub @ A @ K ) @ N )
| ( P @ M @ A @ ( comp @ K @ N ) ) )
| ~ ! [F: subst > term > term] :
( ~ ! [M: subst,A: term,N: subst] :
( ( sub @ ( F @ M @ A ) @ N )
= ( F @ ( comp @ M @ N ) @ ( sub @ A @ N ) ) )
| ~ ! [A: term] :
( ~ ( P @ id @ A @ id )
| ( P @ id @ ( F @ id @ A ) @ id ) )
| ( P @ id @ ( lam @ ( F @ sh @ one ) ) @ id ) )
| ~ ! [B: term] :
( ~ ( P @ id @ B @ id )
| ( P @ id @ ( sub @ Bound_variable_3211 @ ( push @ B @ id ) ) @ id ) )
| ( P @ id @ ( lam @ Bound_variable_3211 ) @ id ) )
=> ! [P: subst > term > subst > $o,Bound_variable_3283: term] :
( ~ ! [M: subst,A: term,N: subst,K: subst] :
( ~ ( P @ M @ A @ ( comp @ K @ N ) )
| ( P @ ( comp @ M @ K ) @ ( sub @ A @ K ) @ N ) )
| ~ ! [M: subst,A: term,N: subst,K: subst] :
( ~ ( P @ ( comp @ M @ K ) @ ( sub @ A @ K ) @ N )
| ( P @ M @ A @ ( comp @ K @ N ) ) )
| ~ ! [A: term] :
( ~ ( var @ ( sub @ A @ id ) )
| ( P @ id @ A @ id ) )
| ~ ! [A: term,B: term] :
( ~ ( P @ id @ A @ id )
| ~ ( P @ id @ B @ id )
| ( P @ id @ ( ap @ ( sub @ A @ id ) @ B ) @ id ) )
| ~ ! [F: subst > term > term] :
( ~ ! [M: subst,A: term,N: subst] :
( ( sub @ ( F @ M @ A ) @ N )
= ( F @ ( comp @ M @ N ) @ ( sub @ A @ N ) ) )
| ~ ! [A: term] :
( ~ ( P @ id @ A @ id )
| ( P @ id @ ( F @ id @ A ) @ id ) )
| ( P @ id @ ( lam @ ( F @ sh @ one ) ) @ id ) )
| ( P @ id @ Bound_variable_3283 @ id ) ) ) ) ) )
& ( hoasinduction_no_psi_cond_lthm
<=> ( ! [P: subst > term > subst > $o] :
~ ! [Q: term > $o] :
~ ! [X: term] :
( ( Q @ X )
= ( P @ id @ X @ id ) )
=> ( ! [P: term > $o,Bound_variable_2367: term] :
( ~ ! [A: term] :
( ~ ( var @ A )
| ( P @ A ) )
| ~ ! [A: term,B: term] :
( ~ ( P @ A )
| ~ ( P @ B )
| ( P @ ( ap @ A @ B ) ) )
| ~ ! [A: term] :
( ~ ! [B: term] :
( ~ ( P @ B )
| ( P @ ( sub @ A @ ( push @ B @ id ) ) ) )
| ( P @ ( lam @ A ) ) )
| ( P @ Bound_variable_2367 ) )
=> ( ! [A: term] :
( A
= ( sub @ A @ id ) )
=> ( ! [P: subst > term > subst > $o,Q: term > $o,Bound_variable_2931: term] :
( ~ ! [F: subst > term > term] :
( ~ ! [M: subst,A: term,N: subst] :
( ( sub @ ( F @ M @ A ) @ N )
= ( F @ ( comp @ M @ N ) @ ( sub @ A @ N ) ) )
| ~ ! [A: term] :
( ~ ( P @ id @ A @ id )
| ( P @ id @ ( F @ id @ A ) @ id ) )
| ( P @ id @ ( lam @ ( F @ sh @ one ) ) @ id ) )
| ~ ! [X: term] :
( ( Q @ X )
= ( P @ id @ X @ id ) )
| ~ ! [B: term] :
( ~ ( Q @ B )
| ( Q @ ( sub @ Bound_variable_2931 @ ( push @ B @ id ) ) ) )
| ( Q @ ( lam @ Bound_variable_2931 ) ) )
=> ! [P: subst > term > subst > $o,Bound_variable_3295: term] :
( ~ ! [A: term,B: term] :
( ~ ( P @ id @ A @ id )
| ~ ( P @ id @ B @ id )
| ( P @ id @ ( ap @ ( sub @ A @ id ) @ B ) @ id ) )
| ~ ! [F: subst > term > term] :
( ~ ! [M: subst,A: term,N: subst] :
( ( sub @ ( F @ M @ A ) @ N )
= ( F @ ( comp @ M @ N ) @ ( sub @ A @ N ) ) )
| ~ ! [A: term] :
( ~ ( P @ id @ A @ id )
| ( P @ id @ ( F @ id @ A ) @ id ) )
| ( P @ id @ ( lam @ ( F @ sh @ one ) ) @ id ) )
| ( P @ id @ Bound_variable_3295 @ id ) ) ) ) ) ) )
& ( hoaslaminj
<=> ! [F: subst > term > term,Bound_variable_2547: subst > term > term,Bound_variable_2549: subst,Bound_variable_2551: term] :
( ~ ! [M: subst,A: term,N: subst] :
( ( sub @ ( F @ M @ A ) @ N )
= ( F @ ( comp @ M @ N ) @ ( sub @ A @ N ) ) )
| ~ ! [M: subst,A: term,N: subst] :
( ( sub @ ( Bound_variable_2547 @ M @ A ) @ N )
= ( Bound_variable_2547 @ ( comp @ M @ N ) @ ( sub @ A @ N ) ) )
| ( ( lam @ ( F @ sh @ one ) )
!= ( lam @ ( Bound_variable_2547 @ sh @ one ) ) )
| ( ( F @ Bound_variable_2549 @ Bound_variable_2551 )
= ( Bound_variable_2547 @ Bound_variable_2549 @ Bound_variable_2551 ) ) ) )
& ( hoasinduction_lem3aaa
<=> ! [P: subst > term > subst > $o,Bound_variable_3171: term] :
( ~ ! [F: subst > term > term,Bound_variable_3149: term] :
( ~ ! [A: term] :
( ~ ( P @ id @ A @ id )
| ( P @ id @ ( F @ id @ A ) @ id ) )
| ( P @ id @ ( lam @ ( F @ sh @ one ) ) @ id )
| ~ ! [Bound_variable_3072: subst,Bound_variable_3074: term,Bound_variable_3076: subst] :
( ( sub @ ( F @ Bound_variable_3072 @ Bound_variable_3074 ) @ Bound_variable_3076 )
= ( sub @ ( sub @ Bound_variable_3149 @ ( push @ Bound_variable_3074 @ Bound_variable_3072 ) ) @ Bound_variable_3076 ) )
| ~ ! [Bound_variable_3090: subst,Bound_variable_3092: term,Bound_variable_3094: subst] :
( ( F @ ( comp @ Bound_variable_3090 @ Bound_variable_3094 ) @ ( sub @ Bound_variable_3092 @ Bound_variable_3094 ) )
= ( sub @ Bound_variable_3149 @ ( push @ ( sub @ Bound_variable_3092 @ Bound_variable_3094 ) @ ( comp @ Bound_variable_3090 @ Bound_variable_3094 ) ) ) ) )
| ~ ! [B: term] :
( ~ ( P @ id @ B @ id )
| ( P @ id @ ( sub @ Bound_variable_3171 @ ( push @ B @ id ) ) @ id ) )
| ( P @ id @ ( lam @ ( sub @ Bound_variable_3171 @ ( push @ one @ sh ) ) ) @ id ) ) )
& induction2lem_gthm
& ( hoasinduction_lem3aa_lthm
<=> ! [P: subst > term > subst > $o,Bound_variable_3046: term] :
( ~ ! [F: subst > term > term] :
( ~ ! [M: subst,A: term,N: subst] :
( ( sub @ ( F @ M @ A ) @ N )
= ( F @ ( comp @ M @ N ) @ ( sub @ A @ N ) ) )
| ~ ! [A: term] :
( ~ ( P @ id @ A @ id )
| ( P @ id @ ( F @ id @ A ) @ id ) )
| ( P @ id @ ( lam @ ( F @ sh @ one ) ) @ id ) )
| ~ ! [B: term] :
( ~ ( P @ id @ B @ id )
| ( P @ id @ ( sub @ Bound_variable_3046 @ ( push @ B @ id ) ) @ id ) )
| ( P @ id @ ( lam @ ( sub @ Bound_variable_3046 @ ( push @ one @ sh ) ) ) @ id ) ) )
& ( hoasinduction_lem3
<=> ! [P: subst > term > subst > $o,Bound_variable_3211: term] :
( ~ ! [M: subst,A: term,N: subst,K: subst] :
( ~ ( P @ M @ A @ ( comp @ K @ N ) )
| ( P @ ( comp @ M @ K ) @ ( sub @ A @ K ) @ N ) )
| ~ ! [M: subst,A: term,N: subst,K: subst] :
( ~ ( P @ ( comp @ M @ K ) @ ( sub @ A @ K ) @ N )
| ( P @ M @ A @ ( comp @ K @ N ) ) )
| ~ ! [F: subst > term > term] :
( ~ ! [M: subst,A: term,N: subst] :
( ( sub @ ( F @ M @ A ) @ N )
= ( F @ ( comp @ M @ N ) @ ( sub @ A @ N ) ) )
| ~ ! [A: term] :
( ~ ( P @ id @ A @ id )
| ( P @ id @ ( F @ id @ A ) @ id ) )
| ( P @ id @ ( lam @ ( F @ sh @ one ) ) @ id ) )
| ~ ! [B: term] :
( ~ ( P @ id @ B @ id )
| ( P @ id @ ( sub @ Bound_variable_3211 @ ( push @ B @ id ) ) @ id ) )
| ( P @ id @ ( lam @ Bound_variable_3211 ) @ id ) ) )
& ( hoasinduction_lem2
<=> ! [P: subst > term > subst > $o,Bound_variable_2999: term,Bound_variable_3001: term] :
( ~ ! [M: subst,A: term,N: subst,K: subst] :
( ~ ( P @ M @ A @ ( comp @ K @ N ) )
| ( P @ ( comp @ M @ K ) @ ( sub @ A @ K ) @ N ) )
| ~ ! [M: subst,A: term,N: subst,K: subst] :
( ~ ( P @ ( comp @ M @ K ) @ ( sub @ A @ K ) @ N )
| ( P @ M @ A @ ( comp @ K @ N ) ) )
| ~ ! [A: term,B: term] :
( ~ ( P @ id @ A @ id )
| ~ ( P @ id @ B @ id )
| ( P @ id @ ( ap @ ( sub @ A @ id ) @ B ) @ id ) )
| ~ ( P @ id @ Bound_variable_2999 @ id )
| ~ ( P @ id @ Bound_variable_3001 @ id )
| ( P @ id @ ( ap @ Bound_variable_2999 @ Bound_variable_3001 ) @ id ) ) )
& ( termmset_lthm
<=> ( ! [A: term] :
( A
= ( sub @ A @ id ) )
=> ! [A: term] :
( A
= ( sub @ A @ id ) ) ) )
& hoasinduction_lem1
& hoaslamnotap_lthm
& ( pushprop_lem1v2_lthm
<=> ( ! [A: term,M: subst] :
( A
= ( sub @ one @ ( push @ A @ M ) ) )
=> ! [P: term > $o,Q: term > $o,A: term,M: subst] :
( ~ ( P @ A )
| ~ ! [X: term] :
( ( Q @ X )
= ( P @ ( sub @ X @ ( push @ A @ M ) ) ) )
| ( Q @ one ) ) ) )
& hoasapnotvar
& ( hoasinduction_lem0
<=> ! [P: subst > term > subst > $o] :
~ ! [Q: term > $o] :
~ ! [X: term] :
( ( Q @ X )
= ( P @ id @ X @ id ) ) )
& ( hoasinduction
<=> ! [P: subst > term > subst > $o,Bound_variable_3283: term] :
( ~ ! [M: subst,A: term,N: subst,K: subst] :
( ~ ( P @ M @ A @ ( comp @ K @ N ) )
| ( P @ ( comp @ M @ K ) @ ( sub @ A @ K ) @ N ) )
| ~ ! [M: subst,A: term,N: subst,K: subst] :
( ~ ( P @ ( comp @ M @ K ) @ ( sub @ A @ K ) @ N )
| ( P @ M @ A @ ( comp @ K @ N ) ) )
| ~ ! [A: term] :
( ~ ( var @ ( sub @ A @ id ) )
| ( P @ id @ A @ id ) )
| ~ ! [A: term,B: term] :
( ~ ( P @ id @ A @ id )
| ~ ( P @ id @ B @ id )
| ( P @ id @ ( ap @ ( sub @ A @ id ) @ B ) @ id ) )
| ~ ! [F: subst > term > term] :
( ~ ! [M: subst,A: term,N: subst] :
( ( sub @ ( F @ M @ A ) @ N )
= ( F @ ( comp @ M @ N ) @ ( sub @ A @ N ) ) )
| ~ ! [A: term] :
( ~ ( P @ id @ A @ id )
| ( P @ id @ ( F @ id @ A ) @ id ) )
| ( P @ id @ ( lam @ ( F @ sh @ one ) ) @ id ) )
| ( P @ id @ Bound_variable_3283 @ id ) ) )
& hoasinduction_gthm
& axapp
& hoaslamnotvar_lthm
& pushprop_lem3v2_lthm
& ( hoasinduction_lem3b_lthm
<=> ! [B: term] :
~ ! [F: subst > term > term] :
( ( F @ sh @ one )
!= ( sub @ B @ ( push @ one @ sh ) ) ) )
& ulamvarind
& ( induction
<=> ! [P: term > $o,Bound_variable_2140: term] :
( ~ ! [A: term] :
( ~ ( var @ A )
| ( P @ A ) )
| ~ ! [A: term,B: term] :
( ~ ( P @ A )
| ~ ( P @ B )
| ( P @ ( ap @ A @ B ) ) )
| ~ ! [A: term] :
( ~ ( P @ A )
| ( P @ ( lam @ A ) ) )
| ( P @ Bound_variable_2140 ) ) )
& ( hoasinduction_lem3a_lthm
<=> ( ! [A: term] :
( A
= ( sub @ A @ id ) )
=> ( ! [P: subst > term > subst > $o,Bound_variable_3046: term] :
( ~ ! [F: subst > term > term] :
( ~ ! [M: subst,A: term,N: subst] :
( ( sub @ ( F @ M @ A ) @ N )
= ( F @ ( comp @ M @ N ) @ ( sub @ A @ N ) ) )
| ~ ! [A: term] :
( ~ ( P @ id @ A @ id )
| ( P @ id @ ( F @ id @ A ) @ id ) )
| ( P @ id @ ( lam @ ( F @ sh @ one ) ) @ id ) )
| ~ ! [B: term] :
( ~ ( P @ id @ B @ id )
| ( P @ id @ ( sub @ Bound_variable_3046 @ ( push @ B @ id ) ) @ id ) )
| ( P @ id @ ( lam @ ( sub @ Bound_variable_3046 @ ( push @ one @ sh ) ) ) @ id ) )
=> ! [P: subst > term > subst > $o,Bound_variable_3232: term] :
( ~ ! [F: subst > term > term] :
( ~ ! [M: subst,A: term,N: subst] :
( ( sub @ ( F @ M @ A ) @ N )
= ( F @ ( comp @ M @ N ) @ ( sub @ A @ N ) ) )
| ~ ! [A: term] :
( ~ ( P @ id @ A @ id )
| ( P @ id @ ( F @ id @ A ) @ id ) )
| ( P @ id @ ( lam @ ( F @ sh @ one ) ) @ id ) )
| ~ ! [B: term] :
( ~ ( P @ id @ B @ id )
| ( P @ id @ ( sub @ Bound_variable_3232 @ ( push @ B @ id ) ) @ id ) )
| ( P @ id @ ( lam @ Bound_variable_3232 ) @ id ) ) ) ) )
& termmset_gthm
& ( hoasinduction_lem3aa
<=> ! [P: subst > term > subst > $o,Bound_variable_3046: term] :
( ~ ! [F: subst > term > term] :
( ~ ! [M: subst,A: term,N: subst] :
( ( sub @ ( F @ M @ A ) @ N )
= ( F @ ( comp @ M @ N ) @ ( sub @ A @ N ) ) )
| ~ ! [A: term] :
( ~ ( P @ id @ A @ id )
| ( P @ id @ ( F @ id @ A ) @ id ) )
| ( P @ id @ ( lam @ ( F @ sh @ one ) ) @ id ) )
| ~ ! [B: term] :
( ~ ( P @ id @ B @ id )
| ( P @ id @ ( sub @ Bound_variable_3046 @ ( push @ B @ id ) ) @ id ) )
| ( P @ id @ ( lam @ ( sub @ Bound_variable_3046 @ ( push @ one @ sh ) ) ) @ id ) ) )
& pushprop_lem1v2_gthm
& hoaslamnotap_gthm
& hoaslamnotvar_gthm
& hoasinduction_lem3b_gthm
& pushprop_lem2v2
& hoasinduction_lem3a_gthm
& axclos
& axassoc
& ( hoasinduction_lem2v2
<=> ! [P: subst > term > subst > $o,Q: term > $o,Bound_variable_2820: term,Bound_variable_2822: term] :
( ~ ! [M: subst,A: term,N: subst,K: subst] :
( ~ ( P @ M @ A @ ( comp @ K @ N ) )
| ( P @ ( comp @ M @ K ) @ ( sub @ A @ K ) @ N ) )
| ~ ! [M: subst,A: term,N: subst,K: subst] :
( ~ ( P @ ( comp @ M @ K ) @ ( sub @ A @ K ) @ N )
| ( P @ M @ A @ ( comp @ K @ N ) ) )
| ~ ! [A: term,B: term] :
( ~ ( P @ id @ A @ id )
| ~ ( P @ id @ B @ id )
| ( P @ id @ ( ap @ ( sub @ A @ id ) @ B ) @ id ) )
| ~ ! [X: term] :
( ( Q @ X )
= ( P @ id @ X @ id ) )
| ~ ( Q @ Bound_variable_2820 )
| ~ ( Q @ Bound_variable_2822 )
| ( Q @ ( ap @ Bound_variable_2820 @ Bound_variable_2822 ) ) ) )
& pushprop_lthm
& ( apinj2
<=> ! [A: term,B: term,C: term,D: term] :
( ( ( ap @ A @ C )
!= ( ap @ B @ D ) )
| ( C = D ) ) )
& ( apinj1
<=> ! [A: term,B: term,C: term,D: term] :
( ( ( ap @ A @ C )
!= ( ap @ B @ D ) )
| ( A = B ) ) )
& ( hoasapinj2_lthm
<=> ( ! [A: term,B: term,C: term,D: term] :
( ( ( ap @ A @ C )
!= ( ap @ B @ D ) )
| ( C = D ) )
=> ! [A: term,B: term,C: term,D: term] :
( ( ( ap @ ( sub @ A @ id ) @ C )
!= ( ap @ ( sub @ B @ id ) @ D ) )
| ( C = D ) ) ) )
& ( hoasinduction_lem3v2a
<=> ! [P: subst > term > subst > $o,Q: term > $o,Bound_variable_2931: term] :
( ~ ! [F: subst > term > term] :
( ~ ! [M: subst,A: term,N: subst] :
( ( sub @ ( F @ M @ A ) @ N )
= ( F @ ( comp @ M @ N ) @ ( sub @ A @ N ) ) )
| ~ ! [A: term] :
( ~ ( P @ id @ A @ id )
| ( P @ id @ ( F @ id @ A ) @ id ) )
| ( P @ id @ ( lam @ ( F @ sh @ one ) ) @ id ) )
| ~ ! [X: term] :
( ( Q @ X )
= ( P @ id @ X @ id ) )
| ~ ! [B: term] :
( ~ ( Q @ B )
| ( Q @ ( sub @ Bound_variable_2931 @ ( push @ B @ id ) ) ) )
| ( Q @ ( lam @ Bound_variable_2931 ) ) ) )
& ( hoasapinj1_lthm
<=> ( ! [A: term] :
( A
= ( sub @ A @ id ) )
=> ( ! [A: term,B: term,C: term,D: term] :
( ( ( ap @ A @ C )
!= ( ap @ B @ D ) )
| ( A = B ) )
=> ! [A: term,B: term,C: term,D: term] :
( ( ( ap @ ( sub @ A @ id ) @ C )
!= ( ap @ ( sub @ B @ id ) @ D ) )
| ( A = B ) ) ) ) )
& ( hoaslaminj_lthm
<=> ( ! [A: term,M: subst] :
( A
= ( sub @ one @ ( push @ A @ M ) ) )
=> ( ! [A: term,M: subst] :
( M
= ( comp @ sh @ ( push @ A @ M ) ) )
=> ( ! [A: term,B: term] :
( ( ( lam @ A )
!= ( lam @ B ) )
| ( A = B ) )
=> ! [F: subst > term > term,Bound_variable_2547: subst > term > term,Bound_variable_2549: subst,Bound_variable_2551: term] :
( ~ ! [M: subst,A: term,N: subst] :
( ( sub @ ( F @ M @ A ) @ N )
= ( F @ ( comp @ M @ N ) @ ( sub @ A @ N ) ) )
| ~ ! [M: subst,A: term,N: subst] :
( ( sub @ ( Bound_variable_2547 @ M @ A ) @ N )
= ( Bound_variable_2547 @ ( comp @ M @ N ) @ ( sub @ A @ N ) ) )
| ( ( lam @ ( F @ sh @ one ) )
!= ( lam @ ( Bound_variable_2547 @ sh @ one ) ) )
| ( ( F @ Bound_variable_2549 @ Bound_variable_2551 )
= ( Bound_variable_2547 @ Bound_variable_2549 @ Bound_variable_2551 ) ) ) ) ) ) )
& ( axvarcons
<=> ! [A: term,M: subst] :
( A
= ( sub @ one @ ( push @ A @ M ) ) ) )
& ( axscons
<=> ! [M: subst] :
( M
= ( push @ ( sub @ one @ M ) @ ( comp @ sh @ M ) ) ) )
& hoasinduction_lem2v2_gthm
& ( axidr
<=> ! [M: subst] :
( M
= ( comp @ M @ id ) ) )
& ( pushprop_lem1
<=> ! [P: term > $o,K: term > $o,A: term,M: subst,B: term] :
( ~ ( P @ A )
| ( K @ ( sub @ A @ ( push @ B @ M ) ) ) ) )
& ( laminj
<=> ! [A: term,B: term] :
( ( ( lam @ A )
!= ( lam @ B ) )
| ( A = B ) ) )
& ( hoasinduction_lem3_lthm
<=> ( ! [A: term] :
( A
= ( sub @ A @ id ) )
=> ( ! [P: subst > term > subst > $o,Bound_variable_3046: term] :
( ~ ! [F: subst > term > term] :
( ~ ! [M: subst,A: term,N: subst] :
( ( sub @ ( F @ M @ A ) @ N )
= ( F @ ( comp @ M @ N ) @ ( sub @ A @ N ) ) )
| ~ ! [A: term] :
( ~ ( P @ id @ A @ id )
| ( P @ id @ ( F @ id @ A ) @ id ) )
| ( P @ id @ ( lam @ ( F @ sh @ one ) ) @ id ) )
| ~ ! [B: term] :
( ~ ( P @ id @ B @ id )
| ( P @ id @ ( sub @ Bound_variable_3046 @ ( push @ B @ id ) ) @ id ) )
| ( P @ id @ ( lam @ ( sub @ Bound_variable_3046 @ ( push @ one @ sh ) ) ) @ id ) )
=> ! [P: subst > term > subst > $o,Bound_variable_3211: term] :
( ~ ! [M: subst,A: term,N: subst,K: subst] :
( ~ ( P @ M @ A @ ( comp @ K @ N ) )
| ( P @ ( comp @ M @ K ) @ ( sub @ A @ K ) @ N ) )
| ~ ! [M: subst,A: term,N: subst,K: subst] :
( ~ ( P @ ( comp @ M @ K ) @ ( sub @ A @ K ) @ N )
| ( P @ M @ A @ ( comp @ K @ N ) ) )
| ~ ! [F: subst > term > term] :
( ~ ! [M: subst,A: term,N: subst] :
( ( sub @ ( F @ M @ A ) @ N )
= ( F @ ( comp @ M @ N ) @ ( sub @ A @ N ) ) )
| ~ ! [A: term] :
( ~ ( P @ id @ A @ id )
| ( P @ id @ ( F @ id @ A ) @ id ) )
| ( P @ id @ ( lam @ ( F @ sh @ one ) ) @ id ) )
| ~ ! [B: term] :
( ~ ( P @ id @ B @ id )
| ( P @ id @ ( sub @ Bound_variable_3211 @ ( push @ B @ id ) ) @ id ) )
| ( P @ id @ ( lam @ Bound_variable_3211 ) @ id ) ) ) ) )
& ( pushprop_lem0
<=> ! [P: term > $o,A: term,M: subst] :
~ ! [Q: term > $o] :
~ ! [X: term] :
( ( Q @ X )
= ( P @ ( sub @ X @ ( push @ A @ M ) ) ) ) )
& pushprop_gthm
& axabs
& ( hoasinduction_lem3v2a_lthm
<=> ( ! [B: term] :
~ ! [F: subst > term > term] :
~ ! [A: term,M: subst] :
( ( sub @ B @ ( push @ A @ M ) )
= ( F @ M @ A ) )
=> ( ! [A: term] :
( A
= ( sub @ A @ id ) )
=> ! [P: subst > term > subst > $o,Q: term > $o,Bound_variable_2931: term] :
( ~ ! [F: subst > term > term] :
( ~ ! [M: subst,A: term,N: subst] :
( ( sub @ ( F @ M @ A ) @ N )
= ( F @ ( comp @ M @ N ) @ ( sub @ A @ N ) ) )
| ~ ! [A: term] :
( ~ ( P @ id @ A @ id )
| ( P @ id @ ( F @ id @ A ) @ id ) )
| ( P @ id @ ( lam @ ( F @ sh @ one ) ) @ id ) )
| ~ ! [X: term] :
( ( Q @ X )
= ( P @ id @ X @ id ) )
| ~ ! [B: term] :
( ~ ( Q @ B )
| ( Q @ ( sub @ Bound_variable_2931 @ ( push @ B @ id ) ) ) )
| ( Q @ ( lam @ Bound_variable_2931 ) ) ) ) ) )
& hoasinduction_lem2_lthm
& hoasapinj2_gthm
& hoasinduction_lem1_lthm
& ~ lamnotap
& hoasapinj1_gthm
& hoaslamnotvar
& ( axidl
<=> ! [M: subst] :
( M
= ( comp @ id @ M ) ) )
& hoaslaminj_gthm
& ( induction2_lthm
<=> ( ! [A: term] :
( A
= ( sub @ A @ id ) )
=> ( ! [P: term > $o,Bound_variable_2340: term,Bound_variable_2342: subst] :
( ~ ! [A: term,B: term] :
( ~ ( P @ A )
| ~ ( P @ B )
| ( P @ ( ap @ A @ B ) ) )
| ~ ! [A: term] :
( ~ ! [B: term] :
( ~ ( P @ B )
| ( P @ ( sub @ A @ ( push @ B @ id ) ) ) )
| ( P @ ( lam @ A ) ) )
| ~ ! [B: term] :
( ~ ( var @ B )
| ( P @ ( sub @ B @ Bound_variable_2342 ) ) )
| ( P @ ( sub @ Bound_variable_2340 @ Bound_variable_2342 ) ) )
=> ! [P: term > $o,Bound_variable_2367: term] :
( ~ ! [A: term] :
( ~ ( var @ A )
| ( P @ A ) )
| ~ ! [A: term,B: term] :
( ~ ( P @ A )
| ~ ( P @ B )
| ( P @ ( ap @ A @ B ) ) )
| ~ ! [A: term] :
( ~ ! [B: term] :
( ~ ( P @ B )
| ( P @ ( sub @ A @ ( push @ B @ id ) ) ) )
| ( P @ ( lam @ A ) ) )
| ( P @ Bound_variable_2367 ) ) ) ) )
& ( hoasinduction_lem0_lthm
<=> ! [P: subst > term > subst > $o] :
~ ! [Q: term > $o] :
~ ! [X: term] :
( ( Q @ X )
= ( P @ id @ X @ id ) ) )
& ( substmonoid_lthm
<=> ( ! [M: subst] :
( M
= ( comp @ id @ M ) )
=> ( ! [M: subst] :
( M
= ( comp @ M @ id ) )
=> ( ! [M: subst] :
( M
= ( comp @ id @ M ) )
& ! [M: subst] :
( M
= ( comp @ M @ id ) ) ) ) ) )
& pushprop
& hoasinduction_lem3_gthm
& hoasinduction_lem2_gthm
& ( hoasinduction_lem3b
<=> ! [B: term] :
~ ! [F: subst > term > term] :
( ( F @ sh @ one )
!= ( sub @ B @ ( push @ one @ sh ) ) ) )
& ( substmonoid
<=> ( ! [M: subst] :
( M
= ( comp @ id @ M ) )
& ! [M: subst] :
( M
= ( comp @ M @ id ) ) ) )
& lamnotvar
& ( hoasinduction_lem3a
<=> ! [P: subst > term > subst > $o,Bound_variable_3232: term] :
( ~ ! [F: subst > term > term] :
( ~ ! [M: subst,A: term,N: subst] :
( ( sub @ ( F @ M @ A ) @ N )
= ( F @ ( comp @ M @ N ) @ ( sub @ A @ N ) ) )
| ~ ! [A: term] :
( ~ ( P @ id @ A @ id )
| ( P @ id @ ( F @ id @ A ) @ id ) )
| ( P @ id @ ( lam @ ( F @ sh @ one ) ) @ id ) )
| ~ ! [B: term] :
( ~ ( P @ id @ B @ id )
| ( P @ id @ ( sub @ Bound_variable_3232 @ ( push @ B @ id ) ) @ id ) )
| ( P @ id @ ( lam @ Bound_variable_3232 ) @ id ) ) )
& hoasinduction_lem1_gthm
& ( hoasinduction_no_psi_cond
<=> ! [P: subst > term > subst > $o,Bound_variable_3295: term] :
( ~ ! [A: term,B: term] :
( ~ ( P @ id @ A @ id )
| ~ ( P @ id @ B @ id )
| ( P @ id @ ( ap @ ( sub @ A @ id ) @ B ) @ id ) )
| ~ ! [F: subst > term > term] :
( ~ ! [M: subst,A: term,N: subst] :
( ( sub @ ( F @ M @ A ) @ N )
= ( F @ ( comp @ M @ N ) @ ( sub @ A @ N ) ) )
| ~ ! [A: term] :
( ~ ( P @ id @ A @ id )
| ( P @ id @ ( F @ id @ A ) @ id ) )
| ( P @ id @ ( lam @ ( F @ sh @ one ) ) @ id ) )
| ( P @ id @ Bound_variable_3295 @ id ) ) )
& induction2_gthm
& pushprop_lem2v2_lthm
& ~ ( hoasvar @ ( d2subst @ d_id ) @ ( d2term @ d_one ) @ ( d2subst @ d_id ) )
& ( hoaslamnotap
<=> ! [F: subst > term > term,Bound_variable_2603: term,Bound_variable_2605: term] :
( ~ ! [M: subst,A: term,N: subst] :
( ( sub @ ( F @ M @ A ) @ N )
= ( F @ ( comp @ M @ N ) @ ( sub @ A @ N ) ) )
| ( ( lam @ ( F @ sh @ one ) )
!= ( ap @ ( sub @ Bound_variable_2603 @ id ) @ Bound_variable_2605 ) ) ) )
& substmonoid_gthm
& ulamvarsh
& ( induction2
<=> ! [P: term > $o,Bound_variable_2367: term] :
( ~ ! [A: term] :
( ~ ( var @ A )
| ( P @ A ) )
| ~ ! [A: term,B: term] :
( ~ ( P @ A )
| ~ ( P @ B )
| ( P @ ( ap @ A @ B ) ) )
| ~ ! [A: term] :
( ~ ! [B: term] :
( ~ ( P @ B )
| ( P @ ( sub @ A @ ( push @ B @ id ) ) ) )
| ( P @ ( lam @ A ) ) )
| ( P @ Bound_variable_2367 ) ) )
& pushprop_lem3v2
& pushprop_lem2v2_gthm
& ( pushprop_lem1_lthm
<=> ( ! [A: term,M: subst] :
( A
= ( sub @ one @ ( push @ A @ M ) ) )
=> ( ! [A: term,M: subst] :
( M
= ( comp @ sh @ ( push @ A @ M ) ) )
=> ! [P: term > $o,K: term > $o,A: term,M: subst,B: term] :
( ~ ( P @ A )
| ( K @ ( sub @ A @ ( push @ B @ M ) ) ) ) ) ) )
& ( hoasinduction_lem3v2
<=> ! [P: subst > term > subst > $o,Q: term > $o,Bound_variable_2910: term] :
( ~ ! [M: subst,A: term,N: subst,K: subst] :
( ~ ( P @ M @ A @ ( comp @ K @ N ) )
| ( P @ ( comp @ M @ K ) @ ( sub @ A @ K ) @ N ) )
| ~ ! [M: subst,A: term,N: subst,K: subst] :
( ~ ( P @ ( comp @ M @ K ) @ ( sub @ A @ K ) @ N )
| ( P @ M @ A @ ( comp @ K @ N ) ) )
| ~ ! [F: subst > term > term] :
( ~ ! [M: subst,A: term,N: subst] :
( ( sub @ ( F @ M @ A ) @ N )
= ( F @ ( comp @ M @ N ) @ ( sub @ A @ N ) ) )
| ~ ! [A: term] :
( ~ ( P @ id @ A @ id )
| ( P @ id @ ( F @ id @ A ) @ id ) )
| ( P @ id @ ( lam @ ( F @ sh @ one ) ) @ id ) )
| ~ ! [X: term] :
( ( Q @ X )
= ( P @ id @ X @ id ) )
| ~ ! [B: term] :
( ~ ( Q @ B )
| ( Q @ ( sub @ Bound_variable_2910 @ ( push @ B @ id ) ) ) )
| ( Q @ ( lam @ Bound_variable_2910 ) ) ) )
& ( axshiftcons
<=> ! [A: term,M: subst] :
( M
= ( comp @ sh @ ( push @ A @ M ) ) ) )
& ( termmset
<=> ! [A: term] :
( A
= ( sub @ A @ id ) ) )
& ( pushprop_lem0_lthm
<=> ! [P: term > $o,A: term,M: subst] :
~ ! [Q: term > $o] :
~ ! [X: term] :
( ( Q @ X )
= ( P @ ( sub @ X @ ( push @ A @ M ) ) ) ) )
& hoasapnotvar_lthm
& ( hoasinduction_lem3v2_lthm
<=> ( ! [A: term] :
( A
= ( sub @ A @ id ) )
=> ! [P: subst > term > subst > $o,Q: term > $o,Bound_variable_2910: term] :
( ~ ! [M: subst,A: term,N: subst,K: subst] :
( ~ ( P @ M @ A @ ( comp @ K @ N ) )
| ( P @ ( comp @ M @ K ) @ ( sub @ A @ K ) @ N ) )
| ~ ! [M: subst,A: term,N: subst,K: subst] :
( ~ ( P @ ( comp @ M @ K ) @ ( sub @ A @ K ) @ N )
| ( P @ M @ A @ ( comp @ K @ N ) ) )
| ~ ! [F: subst > term > term] :
( ~ ! [M: subst,A: term,N: subst] :
( ( sub @ ( F @ M @ A ) @ N )
= ( F @ ( comp @ M @ N ) @ ( sub @ A @ N ) ) )
| ~ ! [A: term] :
( ~ ( P @ id @ A @ id )
| ( P @ id @ ( F @ id @ A ) @ id ) )
| ( P @ id @ ( lam @ ( F @ sh @ one ) ) @ id ) )
| ~ ! [X: term] :
( ( Q @ X )
= ( P @ id @ X @ id ) )
| ~ ! [B: term] :
( ~ ( Q @ B )
| ( Q @ ( sub @ Bound_variable_2910 @ ( push @ B @ id ) ) ) )
| ( Q @ ( lam @ Bound_variable_2910 ) ) ) ) )
& ( axvarid
<=> ! [A: term] :
( A
= ( sub @ A @ id ) ) )
& ( hoasinduction_lthm_3
<=> ( ! [P: subst > term > subst > $o] :
~ ! [Q: term > $o] :
~ ! [X: term] :
( ( Q @ X )
= ( P @ id @ X @ id ) )
=> ( ! [P: term > $o,Bound_variable_2367: term] :
( ~ ! [A: term] :
( ~ ( var @ A )
| ( P @ A ) )
| ~ ! [A: term,B: term] :
( ~ ( P @ A )
| ~ ( P @ B )
| ( P @ ( ap @ A @ B ) ) )
| ~ ! [A: term] :
( ~ ! [B: term] :
( ~ ( P @ B )
| ( P @ ( sub @ A @ ( push @ B @ id ) ) ) )
| ( P @ ( lam @ A ) ) )
| ( P @ Bound_variable_2367 ) )
=> ( ! [A: term] :
( A
= ( sub @ A @ id ) )
=> ( ! [P: subst > term > subst > $o,Q: term > $o,Bound_variable_2931: term] :
( ~ ! [F: subst > term > term] :
( ~ ! [M: subst,A: term,N: subst] :
( ( sub @ ( F @ M @ A ) @ N )
= ( F @ ( comp @ M @ N ) @ ( sub @ A @ N ) ) )
| ~ ! [A: term] :
( ~ ( P @ id @ A @ id )
| ( P @ id @ ( F @ id @ A ) @ id ) )
| ( P @ id @ ( lam @ ( F @ sh @ one ) ) @ id ) )
| ~ ! [X: term] :
( ( Q @ X )
= ( P @ id @ X @ id ) )
| ~ ! [B: term] :
( ~ ( Q @ B )
| ( Q @ ( sub @ Bound_variable_2931 @ ( push @ B @ id ) ) ) )
| ( Q @ ( lam @ Bound_variable_2931 ) ) )
=> ! [P: subst > term > subst > $o,Bound_variable_3283: term] :
( ~ ! [M: subst,A: term,N: subst,K: subst] :
( ~ ( P @ M @ A @ ( comp @ K @ N ) )
| ( P @ ( comp @ M @ K ) @ ( sub @ A @ K ) @ N ) )
| ~ ! [M: subst,A: term,N: subst,K: subst] :
( ~ ( P @ ( comp @ M @ K ) @ ( sub @ A @ K ) @ N )
| ( P @ M @ A @ ( comp @ K @ N ) ) )
| ~ ! [A: term] :
( ~ ( var @ ( sub @ A @ id ) )
| ( P @ id @ A @ id ) )
| ~ ! [A: term,B: term] :
( ~ ( P @ id @ A @ id )
| ~ ( P @ id @ B @ id )
| ( P @ id @ ( ap @ ( sub @ A @ id ) @ B ) @ id ) )
| ~ ! [F: subst > term > term] :
( ~ ! [M: subst,A: term,N: subst] :
( ( sub @ ( F @ M @ A ) @ N )
= ( F @ ( comp @ M @ N ) @ ( sub @ A @ N ) ) )
| ~ ! [A: term] :
( ~ ( P @ id @ A @ id )
| ( P @ id @ ( F @ id @ A ) @ id ) )
| ( P @ id @ ( lam @ ( F @ sh @ one ) ) @ id ) )
| ( P @ id @ Bound_variable_3283 @ id ) ) ) ) ) ) ) ) ).
thf(hoasinduction_lem3a,conjecture,
( hoasinduction_lem3a
= ( ! [P: subst > term > subst > $o] :
( ! [F: subst > term > term] :
( ! [M: subst,A: term,N: subst] :
( ( sub @ ( F @ M @ A ) @ N )
= ( F @ ( comp @ M @ N ) @ ( sub @ A @ N ) ) )
=> ( ! [A: term] :
( ( P @ id @ A @ id )
=> ( P @ id @ ( F @ id @ A ) @ id ) )
=> ( P @ id
@ ( hoaslam @ id
@ ^ [M: subst,A: term] : ( F @ M @ A ) )
@ id ) ) )
=> ! [A: term] :
( ! [B: term] :
( ( P @ id @ B @ id )
=> ( P @ id @ ( sub @ A @ ( push @ B @ id ) ) @ id ) )
=> ( P @ id @ ( lam @ A ) @ id ) ) ) ) ) ).
%------------------------------------------------------------------------------