∀Univ:Set.∀U:Univ.∀V:Univ.∀V1:Univ.∀V2:Univ.∀V3:Univ.∀V4:Univ.∀X:Univ.∀X_plus_Y:Univ.∀X_plus_Y_plus_Z:Univ.∀X_times_Y:Univ.∀X_times_Y_times_Z:Univ.∀Y:Univ.∀Y_plus_Z:Univ.∀Y_times_Z:Univ.∀Z:Univ.∀add:∀_:Univ.∀_:Univ.Univ.∀additive_identity:Univ.∀inverse:∀_:Univ.Univ.∀multiplicative_identity:Univ.∀multiply:∀_:Univ.∀_:Univ.Univ.∀product:∀_:Univ.∀_:Univ.∀_:Univ.Prop.∀sum:∀_:Univ.∀_:Univ.∀_:Univ.Prop.∀x:Univ.∀H0:∀X:Univ.∀X_times_Y:Univ.∀X_times_Y_times_Z:Univ.∀Y:Univ.∀Y_times_Z:Univ.∀Z:Univ.∀_:product X Y_times_Z X_times_Y_times_Z.∀_:product Y Z Y_times_Z.∀_:product X Y X_times_Y.product X_times_Y Z X_times_Y_times_Z.∀H1:∀X:Univ.∀X_times_Y:Univ.∀X_times_Y_times_Z:Univ.∀Y:Univ.∀Y_times_Z:Univ.∀Z:Univ.∀_:product X Y_times_Z X_times_Y_times_Z.∀_:product Y Z Y_times_Z.∀_:product X Y X_times_Y.product X_times_Y Z X_times_Y_times_Z.∀H2:∀X:Univ.∀X_plus_Y:Univ.∀X_plus_Y_plus_Z:Univ.∀Y:Univ.∀Y_plus_Z:Univ.∀Z:Univ.∀_:sum X Y_plus_Z X_plus_Y_plus_Z.∀_:sum Y Z Y_plus_Z.∀_:sum X Y X_plus_Y.sum X_plus_Y Z X_plus_Y_plus_Z.∀H3:∀X:Univ.∀X_plus_Y:Univ.∀X_plus_Y_plus_Z:Univ.∀Y:Univ.∀Y_plus_Z:Univ.∀Z:Univ.∀_:sum X Y_plus_Z X_plus_Y_plus_Z.∀_:sum Y Z Y_plus_Z.∀_:sum X Y X_plus_Y.sum X_plus_Y Z X_plus_Y_plus_Z.∀H4:∀X:Univ.∀Y:Univ.product X (add X Y) X.∀H5:∀X:Univ.∀Y:Univ.sum X (multiply X Y) X.∀H6:∀X:Univ.∀Y:Univ.∀Z:Univ.∀_:sum X Y Z.product X Z X.∀H7:∀X:Univ.∀Y:Univ.∀Z:Univ.∀_:product X Y Z.sum X Z X.∀H8:∀X:Univ.product X additive_identity additive_identity.∀H9:∀X:Univ.sum X multiplicative_identity multiplicative_identity.∀H10:∀X:Univ.product X X X.∀H11:∀X:Univ.sum X X X.∀H12:∀U:Univ.∀V:Univ.∀X:Univ.∀Y:Univ.∀_:product X Y V.∀_:product X Y U.eq Univ U V.∀H13:∀U:Univ.∀V:Univ.∀X:Univ.∀Y:Univ.∀_:sum X Y V.∀_:sum X Y U.eq Univ U V.∀H14:∀X:Univ.product X (inverse X) additive_identity.∀H15:∀X:Univ.product (inverse X) X additive_identity.∀H16:∀X:Univ.sum X (inverse X) multiplicative_identity.∀H17:∀X:Univ.sum (inverse X) X multiplicative_identity.∀H18:∀V1:Univ.∀V2:Univ.∀V3:Univ.∀V4:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀_:product V1 V2 V4.∀_:product Y Z V3.∀_:sum Z X V2.∀_:sum Y X V1.sum V3 X V4.∀H19:∀V1:Univ.∀V2:Univ.∀V3:Univ.∀V4:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀_:sum V3 X V4.∀_:product Y Z V3.∀_:sum Z X V2.∀_:sum Y X V1.product V1 V2 V4.∀H20:∀V1:Univ.∀V2:Univ.∀V3:Univ.∀V4:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀_:product V1 V2 V4.∀_:product Y Z V3.∀_:sum X Z V2.∀_:sum X Y V1.sum X V3 V4.∀H21:∀V1:Univ.∀V2:Univ.∀V3:Univ.∀V4:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀_:sum X V3 V4.∀_:product Y Z V3.∀_:sum X Z V2.∀_:sum X Y V1.product V1 V2 V4.∀H22:∀V1:Univ.∀V2:Univ.∀V3:Univ.∀V4:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀_:sum V1 V2 V4.∀_:sum Y Z V3.∀_:product Z X V2.∀_:product Y X V1.product V3 X V4.∀H23:∀V1:Univ.∀V2:Univ.∀V3:Univ.∀V4:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀_:product V3 X V4.∀_:sum Y Z V3.∀_:product Z X V2.∀_:product Y X V1.sum V1 V2 V4.∀H24:∀V1:Univ.∀V2:Univ.∀V3:Univ.∀V4:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀_:sum V1 V2 V4.∀_:sum Y Z V3.∀_:product X Z V2.∀_:product X Y V1.product X V3 V4.∀H25:∀V1:Univ.∀V2:Univ.∀V3:Univ.∀V4:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀_:product X V3 V4.∀_:sum Y Z V3.∀_:product X Z V2.∀_:product X Y V1.sum V1 V2 V4.∀H26:∀X:Univ.product X multiplicative_identity X.∀H27:∀X:Univ.product multiplicative_identity X X.∀H28:∀X:Univ.sum X additive_identity X.∀H29:∀X:Univ.sum additive_identity X X.∀H30:∀X:Univ.∀Y:Univ.∀Z:Univ.∀_:product X Y Z.product Y X Z.∀H31:∀X:Univ.∀Y:Univ.∀Z:Univ.∀_:sum X Y Z.sum Y X Z.∀H32:∀X:Univ.∀Y:Univ.product X Y (multiply X Y).∀H33:∀X:Univ.∀Y:Univ.sum X Y (add X Y).eq Univ (inverse (inverse x)) x
.
intros.
-autobatch paramodulation timeout=600;
+autobatch depth=5 width=5 size=20 timeout=10;
try assumption.
print proofterm.
qed.
(* -------------------------------------------------------------------------- *)
theorem prove_a_bc_exists:
- ∀Univ:Set.∀X:Univ.∀Y:Univ.∀Z:Univ.∀a:Univ.∀b:Univ.∀c:Univ.∀codomain:∀_:Univ.Univ.∀compose:∀_:Univ.∀_:Univ.Univ.∀domain:∀_:Univ.Univ.∀equivalent:∀_:Univ.∀_:Univ.Prop.∀there_exists:∀_:Univ.Prop.∀H0:there_exists (compose b c).∀H1:there_exists (compose a b).∀H2:∀X:Univ.eq Univ (compose (codomain X) X) X.∀H3:∀X:Univ.eq Univ (compose X (domain X)) X.∀H4:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (compose X (compose Y Z)) (compose (compose X Y) Z).∀H5:∀X:Univ.∀Y:Univ.∀_:there_exists (domain X).∀_:there_exists (compose X Y).eq Univ (domain X) (codomain Y).∀H6:∀X:Univ.∀Y:Univ.∀_:there_exists (compose X Y).eq Univ (domain X) (codomain Y).∀H7:∀X:Univ.∀Y:Univ.∀_:there_exists (compose X Y).there_exists (domain X).∀H8:∀X:Univ.∀_:there_exists (codomain X).there_exists X.∀H9:∀X:Univ.∀_:there_exists (domain X).there_exists X.∀H10:∀X:Univ.∀Y:Univ.∀_:there_exists X.∀_:equivalent X Y.eq Univ X Y.∀H11:∀X:Univ.∀Y:Univ.∀_:equivalent X Y.eq Univ X Y.∀H12:∀X:Univ.∀Y:Univ.∀_:equivalent X Y.there_exists X.there_exists (compose a (compose b c))
+ ∀Univ:Set.∀X:Univ.∀Y:Univ.∀Z:Univ.∀a:Univ.∀b:Univ.∀c:Univ.∀codomain:∀_:Univ.Univ.∀compose:∀_:Univ.∀_:Univ.Univ.∀domain:∀_:Univ.Univ.∀equivalent:∀_:Univ.∀_:Univ.Prop.∀there_exists:∀_:Univ.Prop.∀H0:there_exists (compose b c).∀H1:there_exists (compose a b).∀H2:∀X:Univ.eq Univ (compose (codomain X) X) X.∀H3:∀X:Univ.eq Univ (compose X (domain X)) X.∀H4:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (compose X (compose Y Z)) (compose (compose X Y) Z).∀H5:∀X:Univ.∀Y:Univ.∀_:eq Univ (domain X) (codomain Y).∀_:there_exists (domain X).there_exists (compose X Y).∀H6:∀X:Univ.∀Y:Univ.∀_:there_exists (compose X Y).eq Univ (domain X) (codomain Y).∀H7:∀X:Univ.∀Y:Univ.∀_:there_exists (compose X Y).there_exists (domain X).∀H8:∀X:Univ.∀_:there_exists (codomain X).there_exists X.∀H9:∀X:Univ.∀_:there_exists (domain X).there_exists X.∀H10:∀X:Univ.∀Y:Univ.∀_:eq Univ X Y.∀_:there_exists X.equivalent X Y.∀H11:∀X:Univ.∀Y:Univ.∀_:equivalent X Y.eq Univ X Y.∀H12:∀X:Univ.∀Y:Univ.∀_:equivalent X Y.there_exists X.there_exists (compose a (compose b c))
.
intros.
autobatch depth=5 width=5 size=20 timeout=10;
(* -------------------------------------------------------------------------- *)
theorem prove_strong_fixed_point:
- ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀b:Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀w:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:fixed_point Strong_fixed_point.eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).∀H1:∀X:Univ.∀Y:Univ.eq Univ (apply (apply w X) Y) (apply (apply X Y) Y).∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply b X) Y) Z) (apply X (apply Y Z)).fixed_point (apply (apply b (apply w w)) (apply (apply b (apply b w)) (apply (apply b b) b)))
+ ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀b:Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀w:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).fixed_point Strong_fixed_point.∀H1:∀X:Univ.∀Y:Univ.eq Univ (apply (apply w X) Y) (apply (apply X Y) Y).∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply b X) Y) Z) (apply X (apply Y Z)).fixed_point (apply (apply b (apply w w)) (apply (apply b (apply b w)) (apply (apply b b) b)))
.
intros.
autobatch depth=5 width=5 size=20 timeout=10;
(* -------------------------------------------------------------------------- *)
theorem prove_strong_fixed_point:
- ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀b:Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀w:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:fixed_point Strong_fixed_point.eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).∀H1:∀X:Univ.∀Y:Univ.eq Univ (apply (apply w X) Y) (apply (apply X Y) Y).∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply b X) Y) Z) (apply X (apply Y Z)).fixed_point (apply (apply b (apply w w)) (apply (apply b w) (apply (apply b b) b)))
+ ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀b:Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀w:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).fixed_point Strong_fixed_point.∀H1:∀X:Univ.∀Y:Univ.eq Univ (apply (apply w X) Y) (apply (apply X Y) Y).∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply b X) Y) Z) (apply X (apply Y Z)).fixed_point (apply (apply b (apply w w)) (apply (apply b w) (apply (apply b b) b)))
.
intros.
autobatch depth=5 width=5 size=20 timeout=10;
(* -------------------------------------------------------------------------- *)
theorem prove_strong_fixed_point:
- ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀b:Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀w:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:fixed_point Strong_fixed_point.eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).∀H1:∀X:Univ.∀Y:Univ.eq Univ (apply (apply w X) Y) (apply (apply X Y) Y).∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply b X) Y) Z) (apply X (apply Y Z)).fixed_point (apply (apply b (apply w w)) (apply (apply b (apply (apply b w) b)) b))
+ ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀b:Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀w:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).fixed_point Strong_fixed_point.∀H1:∀X:Univ.∀Y:Univ.eq Univ (apply (apply w X) Y) (apply (apply X Y) Y).∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply b X) Y) Z) (apply X (apply Y Z)).fixed_point (apply (apply b (apply w w)) (apply (apply b (apply (apply b w) b)) b))
.
intros.
autobatch depth=5 width=5 size=20 timeout=10;
(* -------------------------------------------------------------------------- *)
theorem prove_strong_fixed_point:
- ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀b:Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀w:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:fixed_point Strong_fixed_point.eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).∀H1:∀X:Univ.∀Y:Univ.eq Univ (apply (apply w X) Y) (apply (apply X Y) Y).∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply b X) Y) Z) (apply X (apply Y Z)).fixed_point (apply (apply b (apply (apply b (apply w w)) (apply (apply b w) b))) b)
+ ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀b:Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀w:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).fixed_point Strong_fixed_point.∀H1:∀X:Univ.∀Y:Univ.eq Univ (apply (apply w X) Y) (apply (apply X Y) Y).∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply b X) Y) Z) (apply X (apply Y Z)).fixed_point (apply (apply b (apply (apply b (apply w w)) (apply (apply b w) b))) b)
.
intros.
autobatch depth=5 width=5 size=20 timeout=10;
(* -------------------------------------------------------------------------- *)
theorem prove_strong_fixed_point:
- ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀b:Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀w:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:fixed_point Strong_fixed_point.eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).∀H1:∀X:Univ.∀Y:Univ.eq Univ (apply (apply w X) Y) (apply (apply X Y) Y).∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply b X) Y) Z) (apply X (apply Y Z)).fixed_point (apply (apply b (apply (apply b (apply w w)) w)) (apply (apply b b) b))
+ ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀b:Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀w:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).fixed_point Strong_fixed_point.∀H1:∀X:Univ.∀Y:Univ.eq Univ (apply (apply w X) Y) (apply (apply X Y) Y).∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply b X) Y) Z) (apply X (apply Y Z)).fixed_point (apply (apply b (apply (apply b (apply w w)) w)) (apply (apply b b) b))
.
intros.
autobatch depth=5 width=5 size=20 timeout=10;
(* -------------------------------------------------------------------------- *)
theorem prove_strong_fixed_point:
- ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀b:Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀w:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:fixed_point Strong_fixed_point.eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).∀H1:∀X:Univ.∀Y:Univ.eq Univ (apply (apply w X) Y) (apply (apply X Y) Y).∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply b X) Y) Z) (apply X (apply Y Z)).fixed_point (apply (apply b (apply (apply b (apply (apply b (apply w w)) w)) b)) b)
+ ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀b:Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀w:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).fixed_point Strong_fixed_point.∀H1:∀X:Univ.∀Y:Univ.eq Univ (apply (apply w X) Y) (apply (apply X Y) Y).∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply b X) Y) Z) (apply X (apply Y Z)).fixed_point (apply (apply b (apply (apply b (apply (apply b (apply w w)) w)) b)) b)
.
intros.
autobatch depth=5 width=5 size=20 timeout=10;
(* -------------------------------------------------------------------------- *)
theorem prove_strong_fixed_point:
- ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀b:Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀w:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:fixed_point Strong_fixed_point.eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).∀H1:∀X:Univ.∀Y:Univ.eq Univ (apply (apply w X) Y) (apply (apply X Y) Y).∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply b X) Y) Z) (apply X (apply Y Z)).fixed_point (apply (apply b (apply (apply b (apply (apply b (apply w w)) (apply b w))) b)) b)
+ ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀b:Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀w:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).fixed_point Strong_fixed_point.∀H1:∀X:Univ.∀Y:Univ.eq Univ (apply (apply w X) Y) (apply (apply X Y) Y).∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply b X) Y) Z) (apply X (apply Y Z)).fixed_point (apply (apply b (apply (apply b (apply (apply b (apply w w)) (apply b w))) b)) b)
.
intros.
autobatch depth=5 width=5 size=20 timeout=10;
(* -------------------------------------------------------------------------- *)
theorem prove_strong_fixed_point:
- ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀b:Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀w:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:fixed_point Strong_fixed_point.eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).∀H1:∀X:Univ.∀Y:Univ.eq Univ (apply (apply w X) Y) (apply (apply X Y) Y).∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply b X) Y) Z) (apply X (apply Y Z)).fixed_point (apply (apply b (apply (apply b (apply w w)) (apply b w))) (apply (apply b b) b))
+ ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀b:Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀w:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).fixed_point Strong_fixed_point.∀H1:∀X:Univ.∀Y:Univ.eq Univ (apply (apply w X) Y) (apply (apply X Y) Y).∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply b X) Y) Z) (apply X (apply Y Z)).fixed_point (apply (apply b (apply (apply b (apply w w)) (apply b w))) (apply (apply b b) b))
.
intros.
autobatch depth=5 width=5 size=20 timeout=10;
(* -------------------------------------------------------------------------- *)
theorem prove_strong_fixed_point:
- ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀b:Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀w:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:fixed_point Strong_fixed_point.eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).∀H1:∀X:Univ.∀Y:Univ.eq Univ (apply (apply w X) Y) (apply (apply X Y) Y).∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply b X) Y) Z) (apply X (apply Y Z)).fixed_point (apply (apply b (apply (apply b (apply w w)) (apply (apply b (apply b w)) b))) b)
+ ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀b:Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀w:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).fixed_point Strong_fixed_point.∀H1:∀X:Univ.∀Y:Univ.eq Univ (apply (apply w X) Y) (apply (apply X Y) Y).∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply b X) Y) Z) (apply X (apply Y Z)).fixed_point (apply (apply b (apply (apply b (apply w w)) (apply (apply b (apply b w)) b))) b)
.
intros.
autobatch depth=5 width=5 size=20 timeout=10;
(* -------------------------------------------------------------------------- *)
theorem prove_strong_fixed_point:
- ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀k:Univ.∀s:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:fixed_point Strong_fixed_point.eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).∀H1:∀X:Univ.∀Y:Univ.eq Univ (apply (apply k X) Y) X.∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply s X) Y) Z) (apply (apply X Z) (apply Y Z)).fixed_point (apply (apply s (apply k (apply (apply s (apply (apply s k) k)) (apply (apply s k) k)))) (apply (apply s (apply k (apply (apply s s) (apply s k)))) (apply (apply s (apply k s)) k)))
+ ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀k:Univ.∀s:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).fixed_point Strong_fixed_point.∀H1:∀X:Univ.∀Y:Univ.eq Univ (apply (apply k X) Y) X.∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply s X) Y) Z) (apply (apply X Z) (apply Y Z)).fixed_point (apply (apply s (apply k (apply (apply s (apply (apply s k) k)) (apply (apply s k) k)))) (apply (apply s (apply k (apply (apply s s) (apply s k)))) (apply (apply s (apply k s)) k)))
.
intros.
autobatch depth=5 width=5 size=20 timeout=10;
(* -------------------------------------------------------------------------- *)
theorem prove_strong_fixed_point:
- ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀k:Univ.∀s:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:fixed_point Strong_fixed_point.eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).∀H1:∀X:Univ.∀Y:Univ.eq Univ (apply (apply k X) Y) X.∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply s X) Y) Z) (apply (apply X Z) (apply Y Z)).fixed_point (apply (apply s (apply k (apply (apply s (apply (apply s k) k)) (apply (apply s k) k)))) (apply (apply s (apply (apply s (apply k s)) k)) (apply k (apply (apply s (apply (apply s k) k)) (apply (apply s k) k)))))
+ ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀k:Univ.∀s:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).fixed_point Strong_fixed_point.∀H1:∀X:Univ.∀Y:Univ.eq Univ (apply (apply k X) Y) X.∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply s X) Y) Z) (apply (apply X Z) (apply Y Z)).fixed_point (apply (apply s (apply k (apply (apply s (apply (apply s k) k)) (apply (apply s k) k)))) (apply (apply s (apply (apply s (apply k s)) k)) (apply k (apply (apply s (apply (apply s k) k)) (apply (apply s k) k)))))
.
intros.
autobatch depth=5 width=5 size=20 timeout=10;
(* -------------------------------------------------------------------------- *)
theorem prove_strong_fixed_point:
- ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀k:Univ.∀s:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:fixed_point Strong_fixed_point.eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).∀H1:∀X:Univ.∀Y:Univ.eq Univ (apply (apply k X) Y) X.∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply s X) Y) Z) (apply (apply X Z) (apply Y Z)).fixed_point (apply (apply s (apply k (apply (apply (apply s s) (apply (apply s k) k)) (apply (apply s s) (apply s k))))) (apply (apply s (apply k s)) k))
+ ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀k:Univ.∀s:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).fixed_point Strong_fixed_point.∀H1:∀X:Univ.∀Y:Univ.eq Univ (apply (apply k X) Y) X.∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply s X) Y) Z) (apply (apply X Z) (apply Y Z)).fixed_point (apply (apply s (apply k (apply (apply (apply s s) (apply (apply s k) k)) (apply (apply s s) (apply s k))))) (apply (apply s (apply k s)) k))
.
intros.
autobatch depth=5 width=5 size=20 timeout=10;
(* -------------------------------------------------------------------------- *)
theorem prove_strong_fixed_point:
- ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀b:Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀w1:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:fixed_point Strong_fixed_point.eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).∀H1:∀X:Univ.∀Y:Univ.eq Univ (apply (apply w1 X) Y) (apply (apply Y X) X).∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply b X) Y) Z) (apply X (apply Y Z)).fixed_point (apply (apply b (apply (apply b (apply (apply b (apply w1 w1)) (apply b w1))) b)) b)
+ ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀b:Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀w1:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).fixed_point Strong_fixed_point.∀H1:∀X:Univ.∀Y:Univ.eq Univ (apply (apply w1 X) Y) (apply (apply Y X) X).∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply b X) Y) Z) (apply X (apply Y Z)).fixed_point (apply (apply b (apply (apply b (apply (apply b (apply w1 w1)) (apply b w1))) b)) b)
.
intros.
autobatch depth=5 width=5 size=20 timeout=10;
(* -------------------------------------------------------------------------- *)
theorem prove_strong_fixed_point:
- ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀b:Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀w1:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:fixed_point Strong_fixed_point.eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).∀H1:∀X:Univ.∀Y:Univ.eq Univ (apply (apply w1 X) Y) (apply (apply Y X) X).∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply b X) Y) Z) (apply X (apply Y Z)).fixed_point (apply (apply b (apply (apply b (apply w1 w1)) (apply b w1))) (apply (apply b b) b))
+ ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀b:Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀w1:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).fixed_point Strong_fixed_point.∀H1:∀X:Univ.∀Y:Univ.eq Univ (apply (apply w1 X) Y) (apply (apply Y X) X).∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply b X) Y) Z) (apply X (apply Y Z)).fixed_point (apply (apply b (apply (apply b (apply w1 w1)) (apply b w1))) (apply (apply b b) b))
.
intros.
autobatch depth=5 width=5 size=20 timeout=10;
(* -------------------------------------------------------------------------- *)
theorem prove_strong_fixed_point:
- ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀b:Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀w1:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:fixed_point Strong_fixed_point.eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).∀H1:∀X:Univ.∀Y:Univ.eq Univ (apply (apply w1 X) Y) (apply (apply Y X) X).∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply b X) Y) Z) (apply X (apply Y Z)).fixed_point (apply (apply b (apply (apply b (apply w1 w1)) (apply (apply b (apply b w1)) b))) b)
+ ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀b:Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀w1:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).fixed_point Strong_fixed_point.∀H1:∀X:Univ.∀Y:Univ.eq Univ (apply (apply w1 X) Y) (apply (apply Y X) X).∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply b X) Y) Z) (apply X (apply Y Z)).fixed_point (apply (apply b (apply (apply b (apply w1 w1)) (apply (apply b (apply b w1)) b))) b)
.
intros.
autobatch depth=5 width=5 size=20 timeout=10;
(* -------------------------------------------------------------------------- *)
theorem prove_strong_fixed_point:
- ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀b:Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀w1:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:fixed_point Strong_fixed_point.eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).∀H1:∀X:Univ.∀Y:Univ.eq Univ (apply (apply w1 X) Y) (apply (apply Y X) X).∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply b X) Y) Z) (apply X (apply Y Z)).fixed_point (apply (apply b (apply w1 w1)) (apply (apply b (apply b w1)) (apply (apply b b) b)))
+ ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀b:Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀w1:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).fixed_point Strong_fixed_point.∀H1:∀X:Univ.∀Y:Univ.eq Univ (apply (apply w1 X) Y) (apply (apply Y X) X).∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply b X) Y) Z) (apply X (apply Y Z)).fixed_point (apply (apply b (apply w1 w1)) (apply (apply b (apply b w1)) (apply (apply b b) b)))
.
intros.
autobatch depth=5 width=5 size=20 timeout=10;
(* -------------------------------------------------------------------------- *)
theorem prove_strong_fixed_point:
- ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀b:Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀h:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:fixed_point Strong_fixed_point.eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).∀H1:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply h X) Y) Z) (apply (apply (apply X Y) Z) Y).∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply b X) Y) Z) (apply X (apply Y Z)).fixed_point (apply (apply b (apply (apply b (apply (apply h (apply (apply b (apply (apply b h) (apply b b))) (apply h (apply (apply b h) (apply b b))))) h)) b)) b)
+ ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀b:Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀h:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).fixed_point Strong_fixed_point.∀H1:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply h X) Y) Z) (apply (apply (apply X Y) Z) Y).∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply b X) Y) Z) (apply X (apply Y Z)).fixed_point (apply (apply b (apply (apply b (apply (apply h (apply (apply b (apply (apply b h) (apply b b))) (apply h (apply (apply b h) (apply b b))))) h)) b)) b)
.
intros.
autobatch depth=5 width=5 size=20 timeout=10;
(* -------------------------------------------------------------------------- *)
theorem prove_strong_fixed_point:
- ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀b:Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀n:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:fixed_point Strong_fixed_point.eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).∀H1:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply n X) Y) Z) (apply (apply (apply X Z) Y) Z).∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply b X) Y) Z) (apply X (apply Y Z)).fixed_point (apply (apply b (apply (apply b (apply (apply n (apply (apply b b) (apply (apply n (apply (apply b b) n)) n))) n)) b)) b)
+ ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀b:Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀n:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).fixed_point Strong_fixed_point.∀H1:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply n X) Y) Z) (apply (apply (apply X Z) Y) Z).∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply b X) Y) Z) (apply X (apply Y Z)).fixed_point (apply (apply b (apply (apply b (apply (apply n (apply (apply b b) (apply (apply n (apply (apply b b) n)) n))) n)) b)) b)
.
intros.
autobatch depth=5 width=5 size=20 timeout=10;
(* -------------------------------------------------------------------------- *)
theorem prove_strong_fixed_point:
- ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀b:Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀n:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:fixed_point Strong_fixed_point.eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).∀H1:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply n X) Y) Z) (apply (apply (apply X Z) Y) Z).∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply b X) Y) Z) (apply X (apply Y Z)).fixed_point (apply (apply b (apply (apply b (apply (apply n (apply (apply b b) (apply (apply n (apply n (apply b b))) n))) n)) b)) b)
+ ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀b:Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀n:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).fixed_point Strong_fixed_point.∀H1:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply n X) Y) Z) (apply (apply (apply X Z) Y) Z).∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply b X) Y) Z) (apply X (apply Y Z)).fixed_point (apply (apply b (apply (apply b (apply (apply n (apply (apply b b) (apply (apply n (apply n (apply b b))) n))) n)) b)) b)
.
intros.
autobatch depth=5 width=5 size=20 timeout=10;
(* -------------------------------------------------------------------------- *)
theorem prove_strong_fixed_point:
- ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀b:Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀n:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:fixed_point Strong_fixed_point.eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).∀H1:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply n X) Y) Z) (apply (apply (apply X Z) Y) Z).∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply b X) Y) Z) (apply X (apply Y Z)).fixed_point (apply (apply b (apply (apply b (apply (apply n (apply n (apply (apply b (apply b b)) (apply n (apply (apply b b) n))))) n)) b)) b)
+ ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀b:Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀n:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).fixed_point Strong_fixed_point.∀H1:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply n X) Y) Z) (apply (apply (apply X Z) Y) Z).∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply b X) Y) Z) (apply X (apply Y Z)).fixed_point (apply (apply b (apply (apply b (apply (apply n (apply n (apply (apply b (apply b b)) (apply n (apply (apply b b) n))))) n)) b)) b)
.
intros.
autobatch depth=5 width=5 size=20 timeout=10;
(* -------------------------------------------------------------------------- *)
theorem prove_strong_fixed_point:
- ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀b:Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀n:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:fixed_point Strong_fixed_point.eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).∀H1:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply n X) Y) Z) (apply (apply (apply X Z) Y) Z).∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply b X) Y) Z) (apply X (apply Y Z)).fixed_point (apply (apply b (apply (apply b (apply (apply n (apply n (apply (apply b (apply b b)) (apply n (apply n (apply b b)))))) n)) b)) b)
+ ∀Univ:Set.∀Strong_fixed_point:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀apply:∀_:Univ.∀_:Univ.Univ.∀b:Univ.∀fixed_point:∀_:Univ.Prop.∀fixed_pt:Univ.∀n:Univ.∀H0:∀Strong_fixed_point:Univ.∀_:eq Univ (apply Strong_fixed_point fixed_pt) (apply fixed_pt (apply Strong_fixed_point fixed_pt)).fixed_point Strong_fixed_point.∀H1:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply n X) Y) Z) (apply (apply (apply X Z) Y) Z).∀H2:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (apply (apply (apply b X) Y) Z) (apply X (apply Y Z)).fixed_point (apply (apply b (apply (apply b (apply (apply n (apply n (apply (apply b (apply b b)) (apply n (apply n (apply b b)))))) n)) b)) b)
.
intros.
autobatch depth=5 width=5 size=20 timeout=10;
(* -------------------------------------------------------------------------- *)
theorem prove_commutativity:
- ∀Univ:Set.∀X:Univ.∀Y:Univ.∀Z:Univ.∀a:Univ.∀b:Univ.∀c:Univ.∀d:Univ.∀divide:∀_:Univ.∀_:Univ.Univ.∀e:Univ.∀g:Univ.∀identity:Univ.∀less_equal:∀_:Univ.∀_:Univ.Prop.∀zero:Univ.∀H0:eq Univ (divide identity d) g.∀H1:eq Univ (divide identity c) e.∀H2:eq Univ (divide identity b) d.∀H3:eq Univ (divide identity a) c.∀H4:eq Univ (divide (divide identity a) (divide identity (divide identity b))) (divide (divide identity b) (divide identity (divide identity a))).∀H5:∀X:Univ.less_equal X identity.∀H6:∀X:Univ.∀Y:Univ.∀_:less_equal Y X.∀_:less_equal X Y.eq Univ X Y.∀H7:∀X:Univ.less_equal zero X.∀H8:∀X:Univ.∀Y:Univ.∀Z:Univ.less_equal (divide (divide X Z) (divide Y Z)) (divide (divide X Y) Z).∀H9:∀X:Univ.∀Y:Univ.less_equal (divide X Y) X.∀H10:∀X:Univ.∀Y:Univ.∀_:less_equal X Y.eq Univ (divide X Y) zero.∀H11:∀X:Univ.∀Y:Univ.∀_:less_equal X Y.eq Univ (divide X Y) zero.eq Univ (divide c g) (divide d e)
+ ∀Univ:Set.∀X:Univ.∀Y:Univ.∀Z:Univ.∀a:Univ.∀b:Univ.∀c:Univ.∀d:Univ.∀divide:∀_:Univ.∀_:Univ.Univ.∀e:Univ.∀g:Univ.∀identity:Univ.∀less_equal:∀_:Univ.∀_:Univ.Prop.∀zero:Univ.∀H0:eq Univ (divide identity d) g.∀H1:eq Univ (divide identity c) e.∀H2:eq Univ (divide identity b) d.∀H3:eq Univ (divide identity a) c.∀H4:eq Univ (divide (divide identity a) (divide identity (divide identity b))) (divide (divide identity b) (divide identity (divide identity a))).∀H5:∀X:Univ.less_equal X identity.∀H6:∀X:Univ.∀Y:Univ.∀_:less_equal Y X.∀_:less_equal X Y.eq Univ X Y.∀H7:∀X:Univ.less_equal zero X.∀H8:∀X:Univ.∀Y:Univ.∀Z:Univ.less_equal (divide (divide X Z) (divide Y Z)) (divide (divide X Y) Z).∀H9:∀X:Univ.∀Y:Univ.less_equal (divide X Y) X.∀H10:∀X:Univ.∀Y:Univ.∀_:eq Univ (divide X Y) zero.less_equal X Y.∀H11:∀X:Univ.∀Y:Univ.∀_:less_equal X Y.eq Univ (divide X Y) zero.eq Univ (divide c g) (divide d e)
.
intros.
-autobatch paramodulation timeout=600;
+autobatch depth=5 width=5 size=20 timeout=10;
try assumption.
print proofterm.
qed.
(* -------------------------------------------------------------------------- *)
theorem prove_complememt:
- ∀Univ:Set.∀X:Univ.∀Y:Univ.∀Z:Univ.∀a:Univ.∀b:Univ.∀complement:∀_:Univ.∀_:Univ.Prop.∀join:∀_:Univ.∀_:Univ.Univ.∀meet:∀_:Univ.∀_:Univ.Univ.∀n0:Univ.∀n1:Univ.∀r1:Univ.∀r2:Univ.∀H0:complement r2 (meet a b).∀H1:complement r1 (join a b).∀H2:∀X:Univ.∀Y:Univ.∀_:complement X Y.∀_:eq Univ (join X Y) n1.eq Univ (meet X Y) n0.∀H3:∀X:Univ.∀Y:Univ.∀_:complement X Y.eq Univ (join X Y) n1.∀H4:∀X:Univ.∀Y:Univ.∀_:complement X Y.eq Univ (meet X Y) n0.∀H5:∀X:Univ.∀Y:Univ.∀Z:Univ.∀_:eq Univ (meet Z (join X Y)) (join X (meet Y Z)).eq Univ (meet X Z) X.∀H6:∀X:Univ.eq Univ (join X n1) n1.∀H7:∀X:Univ.eq Univ (meet X n1) X.∀H8:∀X:Univ.eq Univ (join X n0) X.∀H9:∀X:Univ.eq Univ (meet X n0) n0.∀H10:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (join (join X Y) Z) (join X (join Y Z)).∀H11:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (meet (meet X Y) Z) (meet X (meet Y Z)).∀H12:∀X:Univ.∀Y:Univ.eq Univ (join X Y) (join Y X).∀H13:∀X:Univ.∀Y:Univ.eq Univ (meet X Y) (meet Y X).∀H14:∀X:Univ.∀Y:Univ.eq Univ (join X (meet X Y)) X.∀H15:∀X:Univ.∀Y:Univ.eq Univ (meet X (join X Y)) X.∀H16:∀X:Univ.eq Univ (join X X) X.∀H17:∀X:Univ.eq Univ (meet X X) X.complement a (join r1 (meet r2 b))
+ ∀Univ:Set.∀X:Univ.∀Y:Univ.∀Z:Univ.∀a:Univ.∀b:Univ.∀complement:∀_:Univ.∀_:Univ.Prop.∀join:∀_:Univ.∀_:Univ.Univ.∀meet:∀_:Univ.∀_:Univ.Univ.∀n0:Univ.∀n1:Univ.∀r1:Univ.∀r2:Univ.∀H0:complement r2 (meet a b).∀H1:complement r1 (join a b).∀H2:∀X:Univ.∀Y:Univ.∀_:eq Univ (join X Y) n1.∀_:eq Univ (meet X Y) n0.complement X Y.∀H3:∀X:Univ.∀Y:Univ.∀_:complement X Y.eq Univ (join X Y) n1.∀H4:∀X:Univ.∀Y:Univ.∀_:complement X Y.eq Univ (meet X Y) n0.∀H5:∀X:Univ.∀Y:Univ.∀Z:Univ.∀_:eq Univ (meet X Z) X.eq Univ (meet Z (join X Y)) (join X (meet Y Z)).∀H6:∀X:Univ.eq Univ (join X n1) n1.∀H7:∀X:Univ.eq Univ (meet X n1) X.∀H8:∀X:Univ.eq Univ (join X n0) X.∀H9:∀X:Univ.eq Univ (meet X n0) n0.∀H10:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (join (join X Y) Z) (join X (join Y Z)).∀H11:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (meet (meet X Y) Z) (meet X (meet Y Z)).∀H12:∀X:Univ.∀Y:Univ.eq Univ (join X Y) (join Y X).∀H13:∀X:Univ.∀Y:Univ.eq Univ (meet X Y) (meet Y X).∀H14:∀X:Univ.∀Y:Univ.eq Univ (join X (meet X Y)) X.∀H15:∀X:Univ.∀Y:Univ.eq Univ (meet X (join X Y)) X.∀H16:∀X:Univ.eq Univ (join X X) X.∀H17:∀X:Univ.eq Univ (meet X X) X.complement a (join r1 (meet r2 b))
.
intros.
autobatch depth=5 width=5 size=20 timeout=10;
(* -------------------------------------------------------------------------- *)
theorem prove_complememt_exists:
- ∀Univ:Set.∀W:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀a:Univ.∀b:Univ.∀complement:∀_:Univ.∀_:Univ.Prop.∀join:∀_:Univ.∀_:Univ.Univ.∀meet:∀_:Univ.∀_:Univ.Univ.∀n0:Univ.∀n1:Univ.∀r1:Univ.∀r2:Univ.∀H0:complement r2 (meet a b).∀H1:complement r1 (join a b).∀H2:∀X:Univ.∀Y:Univ.∀_:complement X Y.∀_:eq Univ (join X Y) n1.eq Univ (meet X Y) n0.∀H3:∀X:Univ.∀Y:Univ.∀_:complement X Y.eq Univ (join X Y) n1.∀H4:∀X:Univ.∀Y:Univ.∀_:complement X Y.eq Univ (meet X Y) n0.∀H5:∀X:Univ.∀Y:Univ.∀Z:Univ.∀_:eq Univ (meet Z (join X Y)) (join X (meet Y Z)).eq Univ (meet X Z) X.∀H6:∀X:Univ.eq Univ (join X n1) n1.∀H7:∀X:Univ.eq Univ (meet X n1) X.∀H8:∀X:Univ.eq Univ (join X n0) X.∀H9:∀X:Univ.eq Univ (meet X n0) n0.∀H10:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (join (join X Y) Z) (join X (join Y Z)).∀H11:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (meet (meet X Y) Z) (meet X (meet Y Z)).∀H12:∀X:Univ.∀Y:Univ.eq Univ (join X Y) (join Y X).∀H13:∀X:Univ.∀Y:Univ.eq Univ (meet X Y) (meet Y X).∀H14:∀X:Univ.∀Y:Univ.eq Univ (join X (meet X Y)) X.∀H15:∀X:Univ.∀Y:Univ.eq Univ (meet X (join X Y)) X.∀H16:∀X:Univ.eq Univ (join X X) X.∀H17:∀X:Univ.eq Univ (meet X X) X.∃W:Univ.complement a W
+ ∀Univ:Set.∀W:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀a:Univ.∀b:Univ.∀complement:∀_:Univ.∀_:Univ.Prop.∀join:∀_:Univ.∀_:Univ.Univ.∀meet:∀_:Univ.∀_:Univ.Univ.∀n0:Univ.∀n1:Univ.∀r1:Univ.∀r2:Univ.∀H0:complement r2 (meet a b).∀H1:complement r1 (join a b).∀H2:∀X:Univ.∀Y:Univ.∀_:eq Univ (join X Y) n1.∀_:eq Univ (meet X Y) n0.complement X Y.∀H3:∀X:Univ.∀Y:Univ.∀_:complement X Y.eq Univ (join X Y) n1.∀H4:∀X:Univ.∀Y:Univ.∀_:complement X Y.eq Univ (meet X Y) n0.∀H5:∀X:Univ.∀Y:Univ.∀Z:Univ.∀_:eq Univ (meet X Z) X.eq Univ (meet Z (join X Y)) (join X (meet Y Z)).∀H6:∀X:Univ.eq Univ (join X n1) n1.∀H7:∀X:Univ.eq Univ (meet X n1) X.∀H8:∀X:Univ.eq Univ (join X n0) X.∀H9:∀X:Univ.eq Univ (meet X n0) n0.∀H10:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (join (join X Y) Z) (join X (join Y Z)).∀H11:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (meet (meet X Y) Z) (meet X (meet Y Z)).∀H12:∀X:Univ.∀Y:Univ.eq Univ (join X Y) (join Y X).∀H13:∀X:Univ.∀Y:Univ.eq Univ (meet X Y) (meet Y X).∀H14:∀X:Univ.∀Y:Univ.eq Univ (join X (meet X Y)) X.∀H15:∀X:Univ.∀Y:Univ.eq Univ (meet X (join X Y)) X.∀H16:∀X:Univ.eq Univ (join X X) X.∀H17:∀X:Univ.eq Univ (meet X X) X.∃W:Univ.complement a W
.
intros.
exists[
(* -------------------------------------------------------------------------- *)
theorem prove_lemma:
- ∀Univ:Set.∀X:Univ.∀Y:Univ.∀Z:Univ.∀a:Univ.∀b:Univ.∀complement:∀_:Univ.∀_:Univ.Prop.∀join:∀_:Univ.∀_:Univ.Univ.∀meet:∀_:Univ.∀_:Univ.Univ.∀n0:Univ.∀n1:Univ.∀r1:Univ.∀r2:Univ.∀H0:complement r2 (meet a b).∀H1:complement r1 (join a b).∀H2:∀X:Univ.∀Y:Univ.∀_:complement X Y.∀_:eq Univ (join X Y) n1.eq Univ (meet X Y) n0.∀H3:∀X:Univ.∀Y:Univ.∀_:complement X Y.eq Univ (join X Y) n1.∀H4:∀X:Univ.∀Y:Univ.∀_:complement X Y.eq Univ (meet X Y) n0.∀H5:∀X:Univ.∀Y:Univ.∀Z:Univ.∀_:eq Univ (meet Z (join X Y)) (join X (meet Y Z)).eq Univ (meet X Z) X.∀H6:∀X:Univ.eq Univ (join X n1) n1.∀H7:∀X:Univ.eq Univ (meet X n1) X.∀H8:∀X:Univ.eq Univ (join X n0) X.∀H9:∀X:Univ.eq Univ (meet X n0) n0.∀H10:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (join (join X Y) Z) (join X (join Y Z)).∀H11:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (meet (meet X Y) Z) (meet X (meet Y Z)).∀H12:∀X:Univ.∀Y:Univ.eq Univ (join X Y) (join Y X).∀H13:∀X:Univ.∀Y:Univ.eq Univ (meet X Y) (meet Y X).∀H14:∀X:Univ.∀Y:Univ.eq Univ (join X (meet X Y)) X.∀H15:∀X:Univ.∀Y:Univ.eq Univ (meet X (join X Y)) X.∀H16:∀X:Univ.eq Univ (join X X) X.∀H17:∀X:Univ.eq Univ (meet X X) X.eq Univ r1 (meet (join r1 (meet r2 b)) (join r1 (meet r2 a)))
+ ∀Univ:Set.∀X:Univ.∀Y:Univ.∀Z:Univ.∀a:Univ.∀b:Univ.∀complement:∀_:Univ.∀_:Univ.Prop.∀join:∀_:Univ.∀_:Univ.Univ.∀meet:∀_:Univ.∀_:Univ.Univ.∀n0:Univ.∀n1:Univ.∀r1:Univ.∀r2:Univ.∀H0:complement r2 (meet a b).∀H1:complement r1 (join a b).∀H2:∀X:Univ.∀Y:Univ.∀_:eq Univ (join X Y) n1.∀_:eq Univ (meet X Y) n0.complement X Y.∀H3:∀X:Univ.∀Y:Univ.∀_:complement X Y.eq Univ (join X Y) n1.∀H4:∀X:Univ.∀Y:Univ.∀_:complement X Y.eq Univ (meet X Y) n0.∀H5:∀X:Univ.∀Y:Univ.∀Z:Univ.∀_:eq Univ (meet X Z) X.eq Univ (meet Z (join X Y)) (join X (meet Y Z)).∀H6:∀X:Univ.eq Univ (join X n1) n1.∀H7:∀X:Univ.eq Univ (meet X n1) X.∀H8:∀X:Univ.eq Univ (join X n0) X.∀H9:∀X:Univ.eq Univ (meet X n0) n0.∀H10:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (join (join X Y) Z) (join X (join Y Z)).∀H11:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (meet (meet X Y) Z) (meet X (meet Y Z)).∀H12:∀X:Univ.∀Y:Univ.eq Univ (join X Y) (join Y X).∀H13:∀X:Univ.∀Y:Univ.eq Univ (meet X Y) (meet Y X).∀H14:∀X:Univ.∀Y:Univ.eq Univ (join X (meet X Y)) X.∀H15:∀X:Univ.∀Y:Univ.eq Univ (meet X (join X Y)) X.∀H16:∀X:Univ.eq Univ (join X X) X.∀H17:∀X:Univ.eq Univ (meet X X) X.eq Univ r1 (meet (join r1 (meet r2 b)) (join r1 (meet r2 a)))
.
intros.
-autobatch paramodulation timeout=600;
+autobatch depth=5 width=5 size=20 timeout=10;
try assumption.
print proofterm.
qed.
∀Univ:Set.∀V:Univ.∀W:Univ.∀W1:Univ.∀W2:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀a:Univ.∀b:Univ.∀big_p:∀_:Univ.∀_:Univ.∀_:Univ.Univ.∀big_t:∀_:Univ.∀_:Univ.∀_:Univ.Univ.∀c:Univ.∀d:Univ.∀e:Univ.∀plus:∀_:Univ.∀_:Univ.Univ.∀term:∀_:Univ.Prop.∀term1:Univ.∀term2:Univ.∀term3:Univ.∀term4:Univ.∀term5:Univ.∀term6:Univ.∀times:∀_:Univ.∀_:Univ.Univ.∀H0:∀W1:Univ.∀W2:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀_:term W2.∀_:term W1.eq Univ (big_t W1 (big_p W2 (big_t W1 X Y) Z) (big_p W2 Y Z)) (big_p W2 (big_t W1 X Y) Z).∀H1:∀V:Univ.∀W:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀_:term W.eq Univ (big_p W (big_p W X Y) (big_p W Z V)) (big_p W (big_p W X Z) (big_p W Y V)).∀H2:∀W:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀_:term W.eq Univ (big_p W (big_p W X Y) Z) (big_p W X (big_p W Y Z)).∀H3:term term6.∀H4:term term5.∀H5:term term4.∀H6:term term3.∀H7:term term2.∀H8:term term1.∀H9:∀W:Univ.∀X:Univ.∀Y:Univ.eq Univ (big_t W X Y) (big_p W X Y).∀H10:∀X:Univ.∀Y:Univ.eq Univ (big_p term6 X Y) (plus Y X).∀H11:∀X:Univ.∀Y:Univ.eq Univ (big_p term5 X Y) (plus X Y).∀H12:∀X:Univ.∀Y:Univ.eq Univ (big_p term4 X Y) (times Y X).∀H13:∀X:Univ.∀Y:Univ.eq Univ (big_p term3 X Y) (times X Y).∀H14:∀X:Univ.∀Y:Univ.eq Univ (big_p term2 X Y) Y.∀H15:∀X:Univ.∀Y:Univ.eq Univ (big_p term1 X Y) X.eq Univ (times a (plus b (times d (times c e)))) (times a (plus b (times (plus b c) (times d (times c e)))))
.
intros.
-autobatch paramodulation timeout=600;
+autobatch depth=5 width=5 size=20 timeout=10;
try assumption.
print proofterm.
qed.
(* -------------------------------------------------------------------------- *)
theorem prove_mv_4:
- ∀Univ:Set.∀X:Univ.∀Y:Univ.∀Z:Univ.∀big_V:∀_:Univ.∀_:Univ.Univ.∀big_hat:∀_:Univ.∀_:Univ.Univ.∀implies:∀_:Univ.∀_:Univ.Univ.∀not:∀_:Univ.Univ.∀ordered:∀_:Univ.∀_:Univ.Prop.∀truth:Univ.∀x:Univ.∀y:Univ.∀H0:∀X:Univ.∀Y:Univ.∀_:ordered X Y.eq Univ (implies X Y) truth.∀H1:∀X:Univ.∀Y:Univ.∀_:ordered X Y.eq Univ (implies X Y) truth.∀H2:∀X:Univ.∀Y:Univ.eq Univ (big_hat X Y) (not (big_V (not X) (not Y))).∀H3:∀X:Univ.∀Y:Univ.eq Univ (big_V X Y) (implies (implies X Y) Y).∀H4:∀X:Univ.∀Y:Univ.eq Univ (implies (implies (not X) (not Y)) (implies Y X)) truth.∀H5:∀X:Univ.∀Y:Univ.eq Univ (implies (implies X Y) Y) (implies (implies Y X) X).∀H6:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (implies (implies X Y) (implies (implies Y Z) (implies X Z))) truth.∀H7:∀X:Univ.eq Univ (implies truth X) X.eq Univ (big_V (implies x y) (implies y x)) truth
+ ∀Univ:Set.∀X:Univ.∀Y:Univ.∀Z:Univ.∀big_V:∀_:Univ.∀_:Univ.Univ.∀big_hat:∀_:Univ.∀_:Univ.Univ.∀implies:∀_:Univ.∀_:Univ.Univ.∀not:∀_:Univ.Univ.∀ordered:∀_:Univ.∀_:Univ.Prop.∀truth:Univ.∀x:Univ.∀y:Univ.∀H0:∀X:Univ.∀Y:Univ.∀_:eq Univ (implies X Y) truth.ordered X Y.∀H1:∀X:Univ.∀Y:Univ.∀_:ordered X Y.eq Univ (implies X Y) truth.∀H2:∀X:Univ.∀Y:Univ.eq Univ (big_hat X Y) (not (big_V (not X) (not Y))).∀H3:∀X:Univ.∀Y:Univ.eq Univ (big_V X Y) (implies (implies X Y) Y).∀H4:∀X:Univ.∀Y:Univ.eq Univ (implies (implies (not X) (not Y)) (implies Y X)) truth.∀H5:∀X:Univ.∀Y:Univ.eq Univ (implies (implies X Y) Y) (implies (implies Y X) X).∀H6:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (implies (implies X Y) (implies (implies Y Z) (implies X Z))) truth.∀H7:∀X:Univ.eq Univ (implies truth X) X.eq Univ (big_V (implies x y) (implies y x)) truth
.
intros.
-autobatch paramodulation timeout=600;
+autobatch depth=5 width=5 size=20 timeout=10;
try assumption.
print proofterm.
qed.
(* -------------------------------------------------------------------------- *)
theorem prove_wajsberg_theorem:
- ∀Univ:Set.∀X:Univ.∀Y:Univ.∀Z:Univ.∀big_V:∀_:Univ.∀_:Univ.Univ.∀big_hat:∀_:Univ.∀_:Univ.Univ.∀implies:∀_:Univ.∀_:Univ.Univ.∀not:∀_:Univ.Univ.∀ordered:∀_:Univ.∀_:Univ.Prop.∀truth:Univ.∀x:Univ.∀y:Univ.∀z:Univ.∀H0:∀X:Univ.∀Y:Univ.∀_:ordered X Y.eq Univ (implies X Y) truth.∀H1:∀X:Univ.∀Y:Univ.∀_:ordered X Y.eq Univ (implies X Y) truth.∀H2:∀X:Univ.∀Y:Univ.eq Univ (big_hat X Y) (not (big_V (not X) (not Y))).∀H3:∀X:Univ.∀Y:Univ.eq Univ (big_V X Y) (implies (implies X Y) Y).∀H4:∀X:Univ.∀Y:Univ.eq Univ (implies (implies (not X) (not Y)) (implies Y X)) truth.∀H5:∀X:Univ.∀Y:Univ.eq Univ (implies (implies X Y) Y) (implies (implies Y X) X).∀H6:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (implies (implies X Y) (implies (implies Y Z) (implies X Z))) truth.∀H7:∀X:Univ.eq Univ (implies truth X) X.eq Univ (implies (big_V x y) z) (big_hat (implies x z) (implies y z))
+ ∀Univ:Set.∀X:Univ.∀Y:Univ.∀Z:Univ.∀big_V:∀_:Univ.∀_:Univ.Univ.∀big_hat:∀_:Univ.∀_:Univ.Univ.∀implies:∀_:Univ.∀_:Univ.Univ.∀not:∀_:Univ.Univ.∀ordered:∀_:Univ.∀_:Univ.Prop.∀truth:Univ.∀x:Univ.∀y:Univ.∀z:Univ.∀H0:∀X:Univ.∀Y:Univ.∀_:eq Univ (implies X Y) truth.ordered X Y.∀H1:∀X:Univ.∀Y:Univ.∀_:ordered X Y.eq Univ (implies X Y) truth.∀H2:∀X:Univ.∀Y:Univ.eq Univ (big_hat X Y) (not (big_V (not X) (not Y))).∀H3:∀X:Univ.∀Y:Univ.eq Univ (big_V X Y) (implies (implies X Y) Y).∀H4:∀X:Univ.∀Y:Univ.eq Univ (implies (implies (not X) (not Y)) (implies Y X)) truth.∀H5:∀X:Univ.∀Y:Univ.eq Univ (implies (implies X Y) Y) (implies (implies Y X) X).∀H6:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (implies (implies X Y) (implies (implies Y Z) (implies X Z))) truth.∀H7:∀X:Univ.eq Univ (implies truth X) X.eq Univ (implies (big_V x y) z) (big_hat (implies x z) (implies y z))
.
intros.
-autobatch paramodulation timeout=600;
+autobatch depth=5 width=5 size=20 timeout=10;
try assumption.
print proofterm.
qed.
(* -------------------------------------------------------------------------- *)
theorem prove_wajsberg_theorem:
- ∀Univ:Set.∀X:Univ.∀Y:Univ.∀Z:Univ.∀big_V:∀_:Univ.∀_:Univ.Univ.∀big_hat:∀_:Univ.∀_:Univ.Univ.∀implies:∀_:Univ.∀_:Univ.Univ.∀not:∀_:Univ.Univ.∀ordered:∀_:Univ.∀_:Univ.Prop.∀truth:Univ.∀x:Univ.∀y:Univ.∀z:Univ.∀H0:∀X:Univ.∀Y:Univ.∀_:ordered X Y.eq Univ (implies X Y) truth.∀H1:∀X:Univ.∀Y:Univ.∀_:ordered X Y.eq Univ (implies X Y) truth.∀H2:∀X:Univ.∀Y:Univ.eq Univ (big_hat X Y) (not (big_V (not X) (not Y))).∀H3:∀X:Univ.∀Y:Univ.eq Univ (big_V X Y) (implies (implies X Y) Y).∀H4:∀X:Univ.∀Y:Univ.eq Univ (implies (implies (not X) (not Y)) (implies Y X)) truth.∀H5:∀X:Univ.∀Y:Univ.eq Univ (implies (implies X Y) Y) (implies (implies Y X) X).∀H6:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (implies (implies X Y) (implies (implies Y Z) (implies X Z))) truth.∀H7:∀X:Univ.eq Univ (implies truth X) X.eq Univ (implies x (big_hat y z)) (big_hat (implies x y) (implies x z))
+ ∀Univ:Set.∀X:Univ.∀Y:Univ.∀Z:Univ.∀big_V:∀_:Univ.∀_:Univ.Univ.∀big_hat:∀_:Univ.∀_:Univ.Univ.∀implies:∀_:Univ.∀_:Univ.Univ.∀not:∀_:Univ.Univ.∀ordered:∀_:Univ.∀_:Univ.Prop.∀truth:Univ.∀x:Univ.∀y:Univ.∀z:Univ.∀H0:∀X:Univ.∀Y:Univ.∀_:eq Univ (implies X Y) truth.ordered X Y.∀H1:∀X:Univ.∀Y:Univ.∀_:ordered X Y.eq Univ (implies X Y) truth.∀H2:∀X:Univ.∀Y:Univ.eq Univ (big_hat X Y) (not (big_V (not X) (not Y))).∀H3:∀X:Univ.∀Y:Univ.eq Univ (big_V X Y) (implies (implies X Y) Y).∀H4:∀X:Univ.∀Y:Univ.eq Univ (implies (implies (not X) (not Y)) (implies Y X)) truth.∀H5:∀X:Univ.∀Y:Univ.eq Univ (implies (implies X Y) Y) (implies (implies Y X) X).∀H6:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (implies (implies X Y) (implies (implies Y Z) (implies X Z))) truth.∀H7:∀X:Univ.eq Univ (implies truth X) X.eq Univ (implies x (big_hat y z)) (big_hat (implies x y) (implies x z))
.
intros.
-autobatch paramodulation timeout=600;
+autobatch depth=5 width=5 size=20 timeout=10;
try assumption.
print proofterm.
qed.
(* -------------------------------------------------------------------------- *)
theorem prove_wajsberg_theorem:
- ∀Univ:Set.∀X:Univ.∀Y:Univ.∀Z:Univ.∀big_V:∀_:Univ.∀_:Univ.Univ.∀big_hat:∀_:Univ.∀_:Univ.Univ.∀implies:∀_:Univ.∀_:Univ.Univ.∀not:∀_:Univ.Univ.∀ordered:∀_:Univ.∀_:Univ.Prop.∀truth:Univ.∀x:Univ.∀y:Univ.∀z:Univ.∀H0:∀X:Univ.∀Y:Univ.∀_:ordered X Y.eq Univ (implies X Y) truth.∀H1:∀X:Univ.∀Y:Univ.∀_:ordered X Y.eq Univ (implies X Y) truth.∀H2:∀X:Univ.∀Y:Univ.eq Univ (big_hat X Y) (not (big_V (not X) (not Y))).∀H3:∀X:Univ.∀Y:Univ.eq Univ (big_V X Y) (implies (implies X Y) Y).∀H4:∀X:Univ.∀Y:Univ.eq Univ (implies (implies (not X) (not Y)) (implies Y X)) truth.∀H5:∀X:Univ.∀Y:Univ.eq Univ (implies (implies X Y) Y) (implies (implies Y X) X).∀H6:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (implies (implies X Y) (implies (implies Y Z) (implies X Z))) truth.∀H7:∀X:Univ.eq Univ (implies truth X) X.eq Univ (implies x (big_V y z)) (big_V (implies x y) (implies x z))
+ ∀Univ:Set.∀X:Univ.∀Y:Univ.∀Z:Univ.∀big_V:∀_:Univ.∀_:Univ.Univ.∀big_hat:∀_:Univ.∀_:Univ.Univ.∀implies:∀_:Univ.∀_:Univ.Univ.∀not:∀_:Univ.Univ.∀ordered:∀_:Univ.∀_:Univ.Prop.∀truth:Univ.∀x:Univ.∀y:Univ.∀z:Univ.∀H0:∀X:Univ.∀Y:Univ.∀_:eq Univ (implies X Y) truth.ordered X Y.∀H1:∀X:Univ.∀Y:Univ.∀_:ordered X Y.eq Univ (implies X Y) truth.∀H2:∀X:Univ.∀Y:Univ.eq Univ (big_hat X Y) (not (big_V (not X) (not Y))).∀H3:∀X:Univ.∀Y:Univ.eq Univ (big_V X Y) (implies (implies X Y) Y).∀H4:∀X:Univ.∀Y:Univ.eq Univ (implies (implies (not X) (not Y)) (implies Y X)) truth.∀H5:∀X:Univ.∀Y:Univ.eq Univ (implies (implies X Y) Y) (implies (implies Y X) X).∀H6:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (implies (implies X Y) (implies (implies Y Z) (implies X Z))) truth.∀H7:∀X:Univ.eq Univ (implies truth X) X.eq Univ (implies x (big_V y z)) (big_V (implies x y) (implies x z))
.
intros.
-autobatch paramodulation timeout=600;
+autobatch depth=5 width=5 size=20 timeout=10;
try assumption.
print proofterm.
qed.
(* -------------------------------------------------------------------------- *)
theorem prove_wajsberg_theorem:
- ∀Univ:Set.∀X:Univ.∀Y:Univ.∀Z:Univ.∀big_V:∀_:Univ.∀_:Univ.Univ.∀big_hat:∀_:Univ.∀_:Univ.Univ.∀implies:∀_:Univ.∀_:Univ.Univ.∀not:∀_:Univ.Univ.∀ordered:∀_:Univ.∀_:Univ.Prop.∀truth:Univ.∀x:Univ.∀y:Univ.∀z:Univ.∀H0:∀X:Univ.∀Y:Univ.∀_:ordered X Y.eq Univ (implies X Y) truth.∀H1:∀X:Univ.∀Y:Univ.∀_:ordered X Y.eq Univ (implies X Y) truth.∀H2:∀X:Univ.∀Y:Univ.eq Univ (big_hat X Y) (not (big_V (not X) (not Y))).∀H3:∀X:Univ.∀Y:Univ.eq Univ (big_V X Y) (implies (implies X Y) Y).∀H4:∀X:Univ.∀Y:Univ.eq Univ (implies (implies (not X) (not Y)) (implies Y X)) truth.∀H5:∀X:Univ.∀Y:Univ.eq Univ (implies (implies X Y) Y) (implies (implies Y X) X).∀H6:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (implies (implies X Y) (implies (implies Y Z) (implies X Z))) truth.∀H7:∀X:Univ.eq Univ (implies truth X) X.eq Univ (implies (big_hat x y) z) (big_V (implies x z) (implies y z))
+ ∀Univ:Set.∀X:Univ.∀Y:Univ.∀Z:Univ.∀big_V:∀_:Univ.∀_:Univ.Univ.∀big_hat:∀_:Univ.∀_:Univ.Univ.∀implies:∀_:Univ.∀_:Univ.Univ.∀not:∀_:Univ.Univ.∀ordered:∀_:Univ.∀_:Univ.Prop.∀truth:Univ.∀x:Univ.∀y:Univ.∀z:Univ.∀H0:∀X:Univ.∀Y:Univ.∀_:eq Univ (implies X Y) truth.ordered X Y.∀H1:∀X:Univ.∀Y:Univ.∀_:ordered X Y.eq Univ (implies X Y) truth.∀H2:∀X:Univ.∀Y:Univ.eq Univ (big_hat X Y) (not (big_V (not X) (not Y))).∀H3:∀X:Univ.∀Y:Univ.eq Univ (big_V X Y) (implies (implies X Y) Y).∀H4:∀X:Univ.∀Y:Univ.eq Univ (implies (implies (not X) (not Y)) (implies Y X)) truth.∀H5:∀X:Univ.∀Y:Univ.eq Univ (implies (implies X Y) Y) (implies (implies Y X) X).∀H6:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (implies (implies X Y) (implies (implies Y Z) (implies X Z))) truth.∀H7:∀X:Univ.eq Univ (implies truth X) X.eq Univ (implies (big_hat x y) z) (big_V (implies x z) (implies y z))
.
intros.
-autobatch paramodulation timeout=600;
+autobatch depth=5 width=5 size=20 timeout=10;
try assumption.
print proofterm.
qed.
(* -------------------------------------------------------------------------- *)
theorem prove_wajsberg_theorem:
- ∀Univ:Set.∀X:Univ.∀Y:Univ.∀Z:Univ.∀big_V:∀_:Univ.∀_:Univ.Univ.∀big_hat:∀_:Univ.∀_:Univ.Univ.∀implies:∀_:Univ.∀_:Univ.Univ.∀not:∀_:Univ.Univ.∀ordered:∀_:Univ.∀_:Univ.Prop.∀truth:Univ.∀x:Univ.∀y:Univ.∀z:Univ.∀H0:∀X:Univ.∀Y:Univ.∀_:ordered X Y.eq Univ (implies X Y) truth.∀H1:∀X:Univ.∀Y:Univ.∀_:ordered X Y.eq Univ (implies X Y) truth.∀H2:∀X:Univ.∀Y:Univ.eq Univ (big_hat X Y) (not (big_V (not X) (not Y))).∀H3:∀X:Univ.∀Y:Univ.eq Univ (big_V X Y) (implies (implies X Y) Y).∀H4:∀X:Univ.∀Y:Univ.eq Univ (implies (implies (not X) (not Y)) (implies Y X)) truth.∀H5:∀X:Univ.∀Y:Univ.eq Univ (implies (implies X Y) Y) (implies (implies Y X) X).∀H6:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (implies (implies X Y) (implies (implies Y Z) (implies X Z))) truth.∀H7:∀X:Univ.eq Univ (implies truth X) X.eq Univ (big_V (big_hat x y) z) (big_hat (big_V x z) (big_V y z))
+ ∀Univ:Set.∀X:Univ.∀Y:Univ.∀Z:Univ.∀big_V:∀_:Univ.∀_:Univ.Univ.∀big_hat:∀_:Univ.∀_:Univ.Univ.∀implies:∀_:Univ.∀_:Univ.Univ.∀not:∀_:Univ.Univ.∀ordered:∀_:Univ.∀_:Univ.Prop.∀truth:Univ.∀x:Univ.∀y:Univ.∀z:Univ.∀H0:∀X:Univ.∀Y:Univ.∀_:eq Univ (implies X Y) truth.ordered X Y.∀H1:∀X:Univ.∀Y:Univ.∀_:ordered X Y.eq Univ (implies X Y) truth.∀H2:∀X:Univ.∀Y:Univ.eq Univ (big_hat X Y) (not (big_V (not X) (not Y))).∀H3:∀X:Univ.∀Y:Univ.eq Univ (big_V X Y) (implies (implies X Y) Y).∀H4:∀X:Univ.∀Y:Univ.eq Univ (implies (implies (not X) (not Y)) (implies Y X)) truth.∀H5:∀X:Univ.∀Y:Univ.eq Univ (implies (implies X Y) Y) (implies (implies Y X) X).∀H6:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (implies (implies X Y) (implies (implies Y Z) (implies X Z))) truth.∀H7:∀X:Univ.eq Univ (implies truth X) X.eq Univ (big_V (big_hat x y) z) (big_hat (big_V x z) (big_V y z))
.
intros.
-autobatch paramodulation timeout=600;
+autobatch depth=5 width=5 size=20 timeout=10;
try assumption.
print proofterm.
qed.
(* -------------------------------------------------------------------------- *)
theorem prove_wajsberg_theorem:
- ∀Univ:Set.∀X:Univ.∀Y:Univ.∀Z:Univ.∀big_V:∀_:Univ.∀_:Univ.Univ.∀big_hat:∀_:Univ.∀_:Univ.Univ.∀implies:∀_:Univ.∀_:Univ.Univ.∀not:∀_:Univ.Univ.∀ordered:∀_:Univ.∀_:Univ.Prop.∀truth:Univ.∀x:Univ.∀y:Univ.∀z:Univ.∀H0:∀X:Univ.∀Y:Univ.∀_:ordered X Y.eq Univ (implies X Y) truth.∀H1:∀X:Univ.∀Y:Univ.∀_:ordered X Y.eq Univ (implies X Y) truth.∀H2:∀X:Univ.∀Y:Univ.eq Univ (big_hat X Y) (not (big_V (not X) (not Y))).∀H3:∀X:Univ.∀Y:Univ.eq Univ (big_V X Y) (implies (implies X Y) Y).∀H4:∀X:Univ.∀Y:Univ.eq Univ (implies (implies (not X) (not Y)) (implies Y X)) truth.∀H5:∀X:Univ.∀Y:Univ.eq Univ (implies (implies X Y) Y) (implies (implies Y X) X).∀H6:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (implies (implies X Y) (implies (implies Y Z) (implies X Z))) truth.∀H7:∀X:Univ.eq Univ (implies truth X) X.eq Univ (implies (big_hat x y) z) (implies (implies x y) (implies x z))
+ ∀Univ:Set.∀X:Univ.∀Y:Univ.∀Z:Univ.∀big_V:∀_:Univ.∀_:Univ.Univ.∀big_hat:∀_:Univ.∀_:Univ.Univ.∀implies:∀_:Univ.∀_:Univ.Univ.∀not:∀_:Univ.Univ.∀ordered:∀_:Univ.∀_:Univ.Prop.∀truth:Univ.∀x:Univ.∀y:Univ.∀z:Univ.∀H0:∀X:Univ.∀Y:Univ.∀_:eq Univ (implies X Y) truth.ordered X Y.∀H1:∀X:Univ.∀Y:Univ.∀_:ordered X Y.eq Univ (implies X Y) truth.∀H2:∀X:Univ.∀Y:Univ.eq Univ (big_hat X Y) (not (big_V (not X) (not Y))).∀H3:∀X:Univ.∀Y:Univ.eq Univ (big_V X Y) (implies (implies X Y) Y).∀H4:∀X:Univ.∀Y:Univ.eq Univ (implies (implies (not X) (not Y)) (implies Y X)) truth.∀H5:∀X:Univ.∀Y:Univ.eq Univ (implies (implies X Y) Y) (implies (implies Y X) X).∀H6:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (implies (implies X Y) (implies (implies Y Z) (implies X Z))) truth.∀H7:∀X:Univ.eq Univ (implies truth X) X.eq Univ (implies (big_hat x y) z) (implies (implies x y) (implies x z))
.
intros.
-autobatch paramodulation timeout=600;
+autobatch depth=5 width=5 size=20 timeout=10;
try assumption.
print proofterm.
qed.
(* ----Hypothesis of the theorem *)
theorem prove_huntingtons_axiom:
- ∀Univ:Set.∀V:Univ.∀V2:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀a:Univ.∀add:∀_:Univ.∀_:Univ.Univ.∀b:Univ.∀c:Univ.∀d:Univ.∀multiply:∀_:Univ.∀_:Univ.Univ.∀negate:∀_:Univ.Univ.∀one:Univ.∀positive_integer:∀_:Univ.Prop.∀successor:∀_:Univ.Univ.∀H0:eq Univ (add c d) d.∀H1:∀X:Univ.∀Y:Univ.∀_:eq Univ (add Y (multiply (successor (successor one)) (add X (negate (add X (negate Y)))))) (add Y (multiply (successor one) (add X (negate (add X (negate Y)))))).eq Univ (negate (add (negate Y) (negate (add X (negate Y))))) X.∀H2:∀X:Univ.∀Y:Univ.∀_:eq Univ (add Y (multiply (successor (successor one)) (add X (negate (add X (negate Y)))))) (add Y (multiply (successor one) (add X (negate (add X (negate Y)))))).eq Univ (negate (add X (negate Y))) (negate Y).∀H3:∀V2:Univ.∀X:Univ.∀Y:Univ.∀_:positive_integer V2.∀_:eq Univ (negate (add Y (multiply V2 (add X (negate (add X (negate Y))))))) (negate Y).eq Univ (negate (add X Y)) (negate Y).∀H4:∀X:Univ.eq Univ (add X X) X.∀H5:∀X:Univ.∀_:positive_integer X.positive_integer (successor X).∀H6:positive_integer one.∀H7:∀V:Univ.∀X:Univ.∀_:positive_integer X.eq Univ (multiply (successor V) X) (add X (multiply V X)).∀H8:∀X:Univ.eq Univ (multiply one X) X.∀H9:∀X:Univ.∀Y:Univ.eq Univ (negate (add (negate (add X Y)) (negate (add X (negate Y))))) X.∀H10:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (add (add X Y) Z) (add X (add Y Z)).∀H11:∀X:Univ.∀Y:Univ.eq Univ (add X Y) (add Y X).eq Univ (add (negate (add a (negate b))) (negate (add (negate a) (negate b)))) b
+ ∀Univ:Set.∀V:Univ.∀V2:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀a:Univ.∀add:∀_:Univ.∀_:Univ.Univ.∀b:Univ.∀c:Univ.∀d:Univ.∀multiply:∀_:Univ.∀_:Univ.Univ.∀negate:∀_:Univ.Univ.∀one:Univ.∀positive_integer:∀_:Univ.Prop.∀successor:∀_:Univ.Univ.∀H0:eq Univ (add c d) d.∀H1:∀X:Univ.∀Y:Univ.∀_:eq Univ (negate (add (negate Y) (negate (add X (negate Y))))) X.eq Univ (add Y (multiply (successor (successor one)) (add X (negate (add X (negate Y)))))) (add Y (multiply (successor one) (add X (negate (add X (negate Y)))))).∀H2:∀X:Univ.∀Y:Univ.∀_:eq Univ (negate (add X (negate Y))) (negate Y).eq Univ (add Y (multiply (successor (successor one)) (add X (negate (add X (negate Y)))))) (add Y (multiply (successor one) (add X (negate (add X (negate Y)))))).∀H3:∀V2:Univ.∀X:Univ.∀Y:Univ.∀_:positive_integer V2.∀_:eq Univ (negate (add X Y)) (negate Y).eq Univ (negate (add Y (multiply V2 (add X (negate (add X (negate Y))))))) (negate Y).∀H4:∀X:Univ.eq Univ (add X X) X.∀H5:∀X:Univ.∀_:positive_integer X.positive_integer (successor X).∀H6:positive_integer one.∀H7:∀V:Univ.∀X:Univ.∀_:positive_integer X.eq Univ (multiply (successor V) X) (add X (multiply V X)).∀H8:∀X:Univ.eq Univ (multiply one X) X.∀H9:∀X:Univ.∀Y:Univ.eq Univ (negate (add (negate (add X Y)) (negate (add X (negate Y))))) X.∀H10:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (add (add X Y) Z) (add X (add Y Z)).∀H11:∀X:Univ.∀Y:Univ.eq Univ (add X Y) (add Y X).eq Univ (add (negate (add a (negate b))) (negate (add (negate a) (negate b)))) b
.
intros.
-autobatch paramodulation timeout=600;
+autobatch depth=5 width=5 size=20 timeout=10;
try assumption.
print proofterm.
qed.
∀Univ:Set.∀V:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀add:∀_:Univ.∀_:Univ.Univ.∀d:Univ.∀e:Univ.∀multiply:∀_:Univ.∀_:Univ.Univ.∀negate:∀_:Univ.Univ.∀one:Univ.∀positive_integer:∀_:Univ.Prop.∀successor:∀_:Univ.Univ.∀H0:eq Univ (negate (add (negate e) (negate (add d (negate e))))) d.∀H1:∀X:Univ.∀_:positive_integer X.positive_integer (successor X).∀H2:positive_integer one.∀H3:∀V:Univ.∀X:Univ.∀_:positive_integer X.eq Univ (multiply (successor V) X) (add X (multiply V X)).∀H4:∀X:Univ.eq Univ (multiply one X) X.∀H5:∀X:Univ.∀Y:Univ.eq Univ (negate (add (negate (add X Y)) (negate (add X (negate Y))))) X.∀H6:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (add (add X Y) Z) (add X (add Y Z)).∀H7:∀X:Univ.∀Y:Univ.eq Univ (add X Y) (add Y X).eq Univ (negate (add e (multiply one (add d (negate (add d (negate e))))))) (negate e)
.
intros.
-autobatch paramodulation timeout=600;
+autobatch depth=5 width=5 size=20 timeout=10;
try assumption.
print proofterm.
qed.
∀Univ:Set.∀V:Univ.∀X:Univ.∀Y:Univ.∀Z:Univ.∀add:∀_:Univ.∀_:Univ.Univ.∀d:Univ.∀e:Univ.∀multiply:∀_:Univ.∀_:Univ.Univ.∀negate:∀_:Univ.Univ.∀one:Univ.∀positive_integer:∀_:Univ.Prop.∀successor:∀_:Univ.Univ.∀H0:eq Univ (negate (add d (negate e))) (negate e).∀H1:∀X:Univ.∀_:positive_integer X.positive_integer (successor X).∀H2:positive_integer one.∀H3:∀V:Univ.∀X:Univ.∀_:positive_integer X.eq Univ (multiply (successor V) X) (add X (multiply V X)).∀H4:∀X:Univ.eq Univ (multiply one X) X.∀H5:∀X:Univ.∀Y:Univ.eq Univ (negate (add (negate (add X Y)) (negate (add X (negate Y))))) X.∀H6:∀X:Univ.∀Y:Univ.∀Z:Univ.eq Univ (add (add X Y) Z) (add X (add Y Z)).∀H7:∀X:Univ.∀Y:Univ.eq Univ (add X Y) (add Y X).eq Univ (add e (multiply (successor (successor one)) (add d (negate (add d (negate e)))))) (add e (multiply (successor one) (add d (negate (add d (negate e))))))
.
intros.
-autobatch paramodulation timeout=600;
+autobatch depth=5 width=5 size=20 timeout=10;
try assumption.
print proofterm.
qed.