Skip to content

Instantly share code, notes, and snippets.

@womeier
Last active March 15, 2023 08:38
Show Gist options
  • Save womeier/7d6e1ffd282e0a4b971ef7f7d8c251a8 to your computer and use it in GitHub Desktop.
Save womeier/7d6e1ffd282e0a4b971ef7f7d8c251a8 to your computer and use it in GitHub Desktop.
letrec [
fun succ_known_101<302>(x_438) :=
case x_438 of {
| xI =>
let p_439 := proj_0 144 x_438 in
let y_440 := app succ_known_101<302>(p_439) in
let y_441 := xO(y_440) in
halt y_441
| xO =>
let p_442 := proj_0 145 x_438 in
let y_443 := xI(p_442) in
halt y_443
| xH =>
let y_444 := xH() in
let y_445 := xO(y_444) in
halt y_445
}
fun add_uncurried_known_102<19>(y_447,x_448) :=
case x_448 of {
| xI =>
let p_449 := proj_0 144 x_448 in
case y_447 of {
| xI =>
let q_450 := proj_0 144 y_447 in
let y_451 := app add_carry_uncurried_known_103<19>(q_450,p_449) in
let y_452 := xO(y_451) in
halt y_452
| xO =>
let q_453 := proj_0 145 y_447 in
let y_454 := app add_uncurried_known_102<19>(q_453,p_449) in
let y_455 := xI(y_454) in
halt y_455
| xH =>
let y_457 := app succ_known_101<302>(p_449) in
let y_458 := xO(y_457) in
halt y_458
}
| xO =>
let p_459 := proj_0 145 x_448 in
case y_447 of {
| xI =>
let q_460 := proj_0 144 y_447 in
let y_461 := app add_uncurried_known_102<19>(q_460,p_459) in
let y_462 := xI(y_461) in
halt y_462
| xO =>
let q_463 := proj_0 145 y_447 in
let y_464 := app add_uncurried_known_102<19>(q_463,p_459) in
let y_465 := xO(y_464) in
halt y_465
| xH =>
let y_466 := xI(p_459) in
halt y_466
}
| xH =>
case y_447 of {
| xI =>
let q_467 := proj_0 144 y_447 in
let y_469 := app succ_known_101<302>(q_467) in
let y_470 := xO(y_469) in
halt y_470
| xO =>
let q_471 := proj_0 145 y_447 in
let y_472 := xI(q_471) in
halt y_472
| xH =>
let y_473 := xH() in
let y_474 := xO(y_473) in
halt y_474
}
}
fun add_carry_uncurried_known_103<19>(y_476,x_477) :=
case x_477 of {
| xI =>
let p_478 := proj_0 144 x_477 in
case y_476 of {
| xI =>
let q_479 := proj_0 144 y_476 in
let y_480 := app add_carry_uncurried_known_103<19>(q_479,p_478) in
let y_481 := xI(y_480) in
halt y_481
| xO =>
let q_482 := proj_0 145 y_476 in
let y_483 := app add_carry_uncurried_known_103<19>(q_482,p_478) in
let y_484 := xO(y_483) in
halt y_484
| xH =>
let y_486 := app succ_known_101<302>(p_478) in
let y_487 := xI(y_486) in
halt y_487
}
| xO =>
let p_488 := proj_0 145 x_477 in
case y_476 of {
| xI =>
let q_489 := proj_0 144 y_476 in
let y_490 := app add_carry_uncurried_known_103<19>(q_489,p_488) in
let y_491 := xO(y_490) in
halt y_491
| xO =>
let q_492 := proj_0 145 y_476 in
let y_493 := app add_uncurried_known_102<19>(q_492,p_488) in
let y_494 := xI(y_493) in
halt y_494
| xH =>
let y_496 := app succ_known_101<302>(p_488) in
let y_497 := xO(y_496) in
halt y_497
}
| xH =>
case y_476 of {
| xI =>
let q_498 := proj_0 144 y_476 in
let y_500 := app succ_known_101<302>(q_498) in
let y_501 := xI(y_500) in
halt y_501
| xO =>
let q_502 := proj_0 145 y_476 in
let y_504 := app succ_known_101<302>(q_502) in
let y_505 := xO(y_504) in
halt y_505
| xH =>
let y_506 := xH() in
let y_507 := xI(y_506) in
halt y_507
}
}
fun list_prio_uncurried_uncurried_uncurried_known_104<4>(p_509,l_510,weight_511) :=
case l_510 of {
| nil =>
halt p_509
| cons =>
let l'_513 := proj_1 149 l_510 in
let y_516 := app add_uncurried_known_102<19>(p_509,weight_511) in
list_prio_uncurried_uncurried_uncurried_known_104<4>(y_516,l'_513,weight_511)
}
fun CertiCoq.Benchmarks.lib.vs.Z2id_known_105<303>(z_518) :=
case z_518 of {
| Z0 =>
let y_519 := xH() in
halt y_519
| Zpos =>
let p_520 := proj_0 139 z_518 in
let y_521 := xH() in
add_uncurried_known_102<19>(y_521,p_520)
| Zneg =>
let y_523 := xH() in
halt y_523
}
fun fold_left_uncurried_106<4>(env_524,a0_525,l_526) :=
case l_526 of {
| nil =>
halt a0_525
| cons =>
let b_527 := proj_0 149 l_526 in
let t_528 := proj_1 149 l_526 in
let f_proj_529 := proj_0 186 env_524 in
let f_code_530 := proj_0 15 f_proj_529 in
let f_env_531 := proj_1 15 f_proj_529 in
let y_532 := app f_code_530<3>(f_env_531,a0_525) in
let y_code_533 := proj_0 15 y_532 in
let y_env_534 := proj_1 15 y_532 in
let y_535 := app y_code_533<3>(y_env_534,b_527) in
fold_left_uncurried_106<4>(env_524,y_535,t_528)
}
fun compare_cont_uncurried_uncurried_known_107<4>(y_537,x_538,r_539) :=
case x_538 of {
| xI =>
let p_540 := proj_0 144 x_538 in
case y_537 of {
| xI =>
let q_541 := proj_0 144 y_537 in
compare_cont_uncurried_uncurried_known_107<4>(q_541,p_540,r_539)
| xO =>
let q_542 := proj_0 145 y_537 in
let y_543 := Gt() in
compare_cont_uncurried_uncurried_known_107<4>(q_542,p_540,y_543)
| xH =>
let y_544 := Gt() in
halt y_544
}
| xO =>
let p_545 := proj_0 145 x_538 in
case y_537 of {
| xI =>
let q_546 := proj_0 144 y_537 in
let y_547 := Lt() in
compare_cont_uncurried_uncurried_known_107<4>(q_546,p_545,y_547)
| xO =>
let q_548 := proj_0 145 y_537 in
compare_cont_uncurried_uncurried_known_107<4>(q_548,p_545,r_539)
| xH =>
let y_549 := Gt() in
halt y_549
}
| xH =>
case y_537 of {
| xI =>
let y_550 := Lt() in
halt y_550
| xO =>
let y_551 := Lt() in
halt y_551
| xH =>
halt r_539
}
}
fun CertiCoq.Benchmarks.lib.vs.clause_prio_known_108<4>(cl_553,CertiCoq.Benchmarks.lib.vs.prio1000_554,CertiCoq.Benchmarks.lib.vs.prio1001_555) :=
case cl_553 of {
| PureClause =>
let prio_556 := proj_2 133 cl_553 in
halt prio_556
| PosSpaceClause =>
halt CertiCoq.Benchmarks.lib.vs.prio1000_554
| NegSpaceClause =>
halt CertiCoq.Benchmarks.lib.vs.prio1001_555
}
fun compare_list_uncurried_uncurried_uncurried_known_109<4>(yl_558,xl_559,f_560) :=
case xl_559 of {
| nil =>
case yl_558 of {
| nil =>
let y_562 := Eq() in
halt y_562
| cons =>
let y_563 := Lt() in
halt y_563
}
| cons =>
let x_564 := proj_0 149 xl_559 in
let xl'_565 := proj_1 149 xl_559 in
case yl_558 of {
| nil =>
let y_566 := Gt() in
halt y_566
| cons =>
let y_567 := proj_0 149 yl_558 in
let yl'_568 := proj_1 149 yl_558 in
let f_code_569 := proj_0 15 f_560 in
let f_env_570 := proj_1 15 f_560 in
let y_571 := app f_code_569<3>(f_env_570,x_564) in
let y_code_572 := proj_0 15 y_571 in
let y_env_573 := proj_1 15 y_571 in
let y_574 := app y_code_572<3>(y_env_573,y_567) in
case y_574 of {
| Eq =>
compare_list_uncurried_uncurried_uncurried_known_109<4>(yl'_568,xl'_565,f_560)
| Lt =>
let y_576 := Lt() in
halt y_576
| Gt =>
let y_577 := Gt() in
halt y_577
}
}
}
fun y_wrapper_110<3>(env_578,e'_579) :=
let y_proj_580 := proj_1 202 env_578 in
let e_proj_581 := proj_0 202 env_578 in
CertiCoq.Benchmarks.lib.vs.expr_cmp_uncurried_known_111<4>(e'_579,e_proj_581,y_proj_580)
fun CertiCoq.Benchmarks.lib.vs.expr_cmp_uncurried_known_111<4>(e'_584,e_585,y_586) :=
case e_585 of {
| Nil =>
case e'_584 of {
| Nil =>
let y_587 := Eq() in
halt y_587
| Var =>
let y_588 := Lt() in
halt y_588
}
| Var =>
let v_589 := proj_0 143 e_585 in
case e'_584 of {
| Nil =>
let y_590 := Gt() in
halt y_590
| Var =>
let v'_591 := proj_0 143 e'_584 in
compare_cont_uncurried_uncurried_known_107<4>(v'_591,v_589,y_586)
}
}
fun CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_112<3>(env_593,e_594) :=
let y_proj_595 := proj_0 205 env_593 in
let env_596 := con_202(e_594,y_proj_595) in
let y_wrapper_clo_597 := con_15(y_wrapper_110,env_596) in
halt y_wrapper_clo_597
fun y_wrapper_113<3>(env_598,a'_599) :=
let y_proj_600 := proj_1 210 env_598 in
let a_proj_601 := proj_0 210 env_598 in
CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_uncurried_known_114<4>(a'_599,a_proj_601,y_proj_600)
fun CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_uncurried_known_114<4>(a'_604,a_605,y_606) :=
case a_605 of {
| Eqv =>
let e1_607 := proj_0 141 a_605 in
let e2_608 := proj_1 141 a_605 in
case a'_604 of {
| Eqv =>
let e1'_609 := proj_0 141 a'_604 in
let e2'_610 := proj_1 141 a'_604 in
let y_612 := app CertiCoq.Benchmarks.lib.vs.expr_cmp_uncurried_known_111<4>(e1'_609,e1_607,y_606) in
case y_612 of {
| Eq =>
CertiCoq.Benchmarks.lib.vs.expr_cmp_uncurried_known_111<4>(e2'_610,e2_608,y_606)
| Lt =>
let y_614 := Lt() in
halt y_614
| Gt =>
let y_615 := Gt() in
halt y_615
}
}
}
fun CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_115<3>(env_616,a_617) :=
let y_proj_618 := proj_0 214 env_616 in
let env_619 := con_210(a_617,y_proj_618) in
let y_wrapper_clo_620 := con_15(y_wrapper_113,env_619) in
halt y_wrapper_clo_620
fun y_wrapper_116<3>(env_621,b_622) :=
let y_proj_623 := proj_1 219 env_621 in
let a_proj_624 := proj_0 219 env_621 in
CertiCoq.Benchmarks.lib.vs.compare_space_atom_uncurried_known_117<4>(b_622,a_proj_624,y_proj_623)
fun CertiCoq.Benchmarks.lib.vs.compare_space_atom_uncurried_known_117<4>(b_627,a_628,y_629) :=
case a_628 of {
| Next =>
let i_630 := proj_0 136 a_628 in
let j_631 := proj_1 136 a_628 in
case b_627 of {
| Next =>
let i'_632 := proj_0 136 b_627 in
let j'_633 := proj_1 136 b_627 in
let y_635 := app CertiCoq.Benchmarks.lib.vs.expr_cmp_uncurried_known_111<4>(i'_632,i_630,y_629) in
case y_635 of {
| Eq =>
CertiCoq.Benchmarks.lib.vs.expr_cmp_uncurried_known_111<4>(j'_633,j_631,y_629)
| Lt =>
let y_637 := Lt() in
halt y_637
| Gt =>
let y_638 := Gt() in
halt y_638
}
| Lseg =>
let i'_639 := proj_0 137 b_627 in
let y_641 := app CertiCoq.Benchmarks.lib.vs.expr_cmp_uncurried_known_111<4>(i'_639,i_630,y_629) in
case y_641 of {
| Eq =>
let y_642 := Lt() in
halt y_642
| Lt =>
let y_643 := Lt() in
halt y_643
| Gt =>
let y_644 := Gt() in
halt y_644
}
}
| Lseg =>
let i_645 := proj_0 137 a_628 in
let j_646 := proj_1 137 a_628 in
case b_627 of {
| Next =>
let i'_647 := proj_0 136 b_627 in
let y_649 := app CertiCoq.Benchmarks.lib.vs.expr_cmp_uncurried_known_111<4>(i'_647,i_645,y_629) in
case y_649 of {
| Eq =>
let y_650 := Gt() in
halt y_650
| Lt =>
let y_651 := Lt() in
halt y_651
| Gt =>
let y_652 := Gt() in
halt y_652
}
| Lseg =>
let i'_653 := proj_0 137 b_627 in
let j'_654 := proj_1 137 b_627 in
let y_656 := app CertiCoq.Benchmarks.lib.vs.expr_cmp_uncurried_known_111<4>(i'_653,i_645,y_629) in
case y_656 of {
| Eq =>
CertiCoq.Benchmarks.lib.vs.expr_cmp_uncurried_known_111<4>(j'_654,j_646,y_629)
| Lt =>
let y_658 := Lt() in
halt y_658
| Gt =>
let y_659 := Gt() in
halt y_659
}
}
}
fun CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_118<3>(env_660,a_661) :=
let y_proj_662 := proj_0 227 env_660 in
let env_663 := con_219(a_661,y_proj_662) in
let y_wrapper_clo_664 := con_15(y_wrapper_116,env_663) in
halt y_wrapper_clo_664
fun CertiCoq.Benchmarks.lib.vs.compare_clause_119<3>(env_665,cl1_666) :=
let CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_clo_667 := con_15(CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_121,env_665) in
let env_668 := con_231(CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_clo_667,cl1_666) in
let y_wrapper_clo_669 := con_15(y_wrapper_120,env_668) in
halt y_wrapper_clo_669
fun y_wrapper_120<3>(env_670,cl2_671) :=
let CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_proj_672 := proj_0 231 env_670 in
let cl1_proj_673 := proj_1 231 env_670 in
let CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_code_674 := proj_0 15 CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_proj_672 in
let CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_env_675 := proj_1 15 CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_proj_672 in
CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_code_674<4>(CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_env_675,cl2_671,cl1_proj_673)
fun CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_121<4>(env_676,cl2_677,cl1_678) :=
case cl1_678 of {
| PureClause =>
let neg_679 := proj_0 133 cl1_678 in
let pos_680 := proj_1 133 cl1_678 in
case cl2_677 of {
| PureClause =>
let neg'_681 := proj_0 133 cl2_677 in
let pos'_682 := proj_1 133 cl2_677 in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_683 := proj_0 229 env_676 in
let y_686 := app compare_list_uncurried_uncurried_uncurried_known_109<4>(neg'_681,neg_679,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_683) in
case y_686 of {
| Eq =>
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_687 := proj_0 229 env_676 in
compare_list_uncurried_uncurried_uncurried_known_109<4>(pos'_682,pos_680,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_687)
| Lt =>
let y_690 := Lt() in
halt y_690
| Gt =>
let y_691 := Gt() in
halt y_691
}
| PosSpaceClause =>
let y_692 := Lt() in
halt y_692
| NegSpaceClause =>
let y_693 := Lt() in
halt y_693
}
| PosSpaceClause =>
let gamma_694 := proj_0 134 cl1_678 in
let delta_695 := proj_1 134 cl1_678 in
let sigma_696 := proj_2 134 cl1_678 in
case cl2_677 of {
| PureClause =>
let y_697 := Gt() in
halt y_697
| PosSpaceClause =>
let gamma'_698 := proj_0 134 cl2_677 in
let delta'_699 := proj_1 134 cl2_677 in
let sigma'_700 := proj_2 134 cl2_677 in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_701 := proj_0 229 env_676 in
let y_704 := app compare_list_uncurried_uncurried_uncurried_known_109<4>(gamma'_698,gamma_694,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_701) in
case y_704 of {
| Eq =>
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_705 := proj_0 229 env_676 in
let y_708 := app compare_list_uncurried_uncurried_uncurried_known_109<4>(delta'_699,delta_695,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_705) in
case y_708 of {
| Eq =>
let CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_709 := proj_1 229 env_676 in
compare_list_uncurried_uncurried_uncurried_known_109<4>(sigma'_700,sigma_696,CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_709)
| Lt =>
let y_712 := Lt() in
halt y_712
| Gt =>
let y_713 := Gt() in
halt y_713
}
| Lt =>
let y_714 := Lt() in
halt y_714
| Gt =>
let y_715 := Gt() in
halt y_715
}
| NegSpaceClause =>
let y_716 := Lt() in
halt y_716
}
| NegSpaceClause =>
let gamma_717 := proj_0 135 cl1_678 in
let sigma_718 := proj_1 135 cl1_678 in
let delta_719 := proj_2 135 cl1_678 in
case cl2_677 of {
| PureClause =>
let y_720 := Gt() in
halt y_720
| PosSpaceClause =>
let y_721 := Gt() in
halt y_721
| NegSpaceClause =>
let gamma'_722 := proj_0 135 cl2_677 in
let sigma'_723 := proj_1 135 cl2_677 in
let delta'_724 := proj_2 135 cl2_677 in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_725 := proj_0 229 env_676 in
let y_728 := app compare_list_uncurried_uncurried_uncurried_known_109<4>(gamma'_722,gamma_717,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_725) in
case y_728 of {
| Eq =>
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_729 := proj_0 229 env_676 in
let y_732 := app compare_list_uncurried_uncurried_uncurried_known_109<4>(delta'_724,delta_719,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_729) in
case y_732 of {
| Eq =>
let CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_733 := proj_1 229 env_676 in
compare_list_uncurried_uncurried_uncurried_known_109<4>(sigma'_723,sigma_718,CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_733)
| Lt =>
let y_736 := Lt() in
halt y_736
| Gt =>
let y_737 := Gt() in
halt y_737
}
| Lt =>
let y_738 := Lt() in
halt y_738
| Gt =>
let y_739 := Gt() in
halt y_739
}
}
}
fun CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_122<4>(env_740,cl2_741,cl1_742) :=
let CertiCoq.Benchmarks.lib.vs.prio1000_proj_744 := proj_1 241 env_740 in
let CertiCoq.Benchmarks.lib.vs.prio1001_proj_745 := proj_2 241 env_740 in
let y_746 := app CertiCoq.Benchmarks.lib.vs.clause_prio_known_108<4>(cl1_742,CertiCoq.Benchmarks.lib.vs.prio1000_proj_744,CertiCoq.Benchmarks.lib.vs.prio1001_proj_745) in
let CertiCoq.Benchmarks.lib.vs.prio1000_proj_748 := proj_1 241 env_740 in
let CertiCoq.Benchmarks.lib.vs.prio1001_proj_749 := proj_2 241 env_740 in
let y_750 := app CertiCoq.Benchmarks.lib.vs.clause_prio_known_108<4>(cl2_741,CertiCoq.Benchmarks.lib.vs.prio1000_proj_748,CertiCoq.Benchmarks.lib.vs.prio1001_proj_749) in
let y_proj_751 := proj_0 241 env_740 in
let y_753 := app compare_cont_uncurried_uncurried_known_107<4>(y_750,y_746,y_proj_751) in
case y_753 of {
| Eq =>
let CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_proj_754 := proj_3 241 env_740 in
let CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_code_755 := proj_0 15 CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_proj_754 in
let CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_env_756 := proj_1 15 CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_proj_754 in
CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_code_755<4>(CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_env_756,cl2_741,cl1_742)
| Lt =>
let y_757 := Lt() in
halt y_757
| Gt =>
let y_758 := Gt() in
halt y_758
}
fun y_wrapper_123<3>(env_759,s_760) :=
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_761 := proj_1 248 env_759 in
let x_proj_762 := proj_0 248 env_759 in
CertiCoq.Benchmarks.lib.vs.M.Raw.add_uncurried_known_124<4>(s_760,x_proj_762,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_761)
fun CertiCoq.Benchmarks.lib.vs.M.Raw.add_uncurried_known_124<4>(s_765,x_766,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_767) :=
let y_769 := app ins_uncurried_known_125<4>(s_765,x_766,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_767) in
case y_769 of {
| Leaf =>
let y_770 := Leaf() in
halt y_770
| Node =>
let a_771 := proj_1 121 y_769 in
let x_772 := proj_2 121 y_769 in
let b_773 := proj_3 121 y_769 in
let y_774 := Black() in
let y_775 := Node(y_774,a_771,x_772,b_773) in
halt y_775
}
fun ins_uncurried_known_125<4>(s_777,x_778,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_779) :=
case s_777 of {
| Leaf =>
let y_780 := Red() in
let y_781 := Leaf() in
let y_782 := Leaf() in
let y_783 := Node(y_780,y_781,x_778,y_782) in
halt y_783
| Node =>
let c_784 := proj_0 121 s_777 in
let l_785 := proj_1 121 s_777 in
let y_786 := proj_2 121 s_777 in
let r_787 := proj_3 121 s_777 in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_code_788 := proj_0 15 CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_779 in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_env_789 := proj_1 15 CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_779 in
let y_790 := app CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_code_788<4>(CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_env_789,y_786,x_778) in
case y_790 of {
| Eq =>
halt s_777
| Lt =>
case c_784 of {
| Red =>
let y_791 := Red() in
let y_792 := app ins_uncurried_known_125<4>(l_785,x_778,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_779) in
let y_793 := Node(y_791,y_792,y_786,r_787) in
halt y_793
| Black =>
let y_794 := app ins_uncurried_known_125<4>(l_785,x_778,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_779) in
case y_794 of {
| Leaf =>
let y_795 := Black() in
let y_796 := Node(y_795,y_794,y_786,r_787) in
halt y_796
| Node =>
let t_797 := proj_0 121 y_794 in
let a_798 := proj_1 121 y_794 in
let x_799 := proj_2 121 y_794 in
let c_800 := proj_3 121 y_794 in
case t_797 of {
| Red =>
case a_798 of {
| Leaf =>
case c_800 of {
| Leaf =>
let y_801 := Black() in
let y_802 := Node(y_801,y_794,y_786,r_787) in
halt y_802
| Node =>
let t0_803 := proj_0 121 c_800 in
let b_804 := proj_1 121 c_800 in
let y_805 := proj_2 121 c_800 in
let c_806 := proj_3 121 c_800 in
case t0_803 of {
| Red =>
let y_807 := Red() in
let y_808 := Black() in
let y_809 := Node(y_808,a_798,x_799,b_804) in
let y_810 := Black() in
let y_811 := Node(y_810,c_806,y_786,r_787) in
let y_812 := Node(y_807,y_809,y_805,y_811) in
halt y_812
| Black =>
let y_813 := Black() in
let y_814 := Node(y_813,y_794,y_786,r_787) in
halt y_814
}
}
| Node =>
let t0_815 := proj_0 121 a_798 in
let a_816 := proj_1 121 a_798 in
let x_817 := proj_2 121 a_798 in
let b_818 := proj_3 121 a_798 in
case t0_815 of {
| Red =>
let y_819 := Red() in
let y_820 := Black() in
let y_821 := Node(y_820,a_816,x_817,b_818) in
let y_822 := Black() in
let y_823 := Node(y_822,c_800,y_786,r_787) in
let y_824 := Node(y_819,y_821,x_799,y_823) in
halt y_824
| Black =>
case c_800 of {
| Leaf =>
let y_825 := Black() in
let y_826 := Node(y_825,y_794,y_786,r_787) in
halt y_826
| Node =>
let t1_827 := proj_0 121 c_800 in
let b_828 := proj_1 121 c_800 in
let y_829 := proj_2 121 c_800 in
let c_830 := proj_3 121 c_800 in
case t1_827 of {
| Red =>
let y_831 := Red() in
let y_832 := Black() in
let y_833 := Node(y_832,a_798,x_799,b_828) in
let y_834 := Black() in
let y_835 := Node(y_834,c_830,y_786,r_787) in
let y_836 := Node(y_831,y_833,y_829,y_835) in
halt y_836
| Black =>
let y_837 := Black() in
let y_838 := Node(y_837,y_794,y_786,r_787) in
halt y_838
}
}
}
}
| Black =>
let y_839 := Black() in
let y_840 := Node(y_839,y_794,y_786,r_787) in
halt y_840
}
}
}
| Gt =>
case c_784 of {
| Red =>
let y_841 := Red() in
let y_842 := app ins_uncurried_known_125<4>(r_787,x_778,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_779) in
let y_843 := Node(y_841,l_785,y_786,y_842) in
halt y_843
| Black =>
let y_844 := app ins_uncurried_known_125<4>(r_787,x_778,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_779) in
case y_844 of {
| Leaf =>
let y_845 := Black() in
let y_846 := Node(y_845,l_785,y_786,y_844) in
halt y_846
| Node =>
let t_847 := proj_0 121 y_844 in
let b_848 := proj_1 121 y_844 in
let y_849 := proj_2 121 y_844 in
let d_850 := proj_3 121 y_844 in
case t_847 of {
| Red =>
case b_848 of {
| Leaf =>
case d_850 of {
| Leaf =>
let y_851 := Black() in
let y_852 := Node(y_851,l_785,y_786,y_844) in
halt y_852
| Node =>
let t0_853 := proj_0 121 d_850 in
let c_854 := proj_1 121 d_850 in
let z_855 := proj_2 121 d_850 in
let d_856 := proj_3 121 d_850 in
case t0_853 of {
| Red =>
let y_857 := Red() in
let y_858 := Black() in
let y_859 := Node(y_858,l_785,y_786,b_848) in
let y_860 := Black() in
let y_861 := Node(y_860,c_854,z_855,d_856) in
let y_862 := Node(y_857,y_859,y_849,y_861) in
halt y_862
| Black =>
let y_863 := Black() in
let y_864 := Node(y_863,l_785,y_786,y_844) in
halt y_864
}
}
| Node =>
let t0_865 := proj_0 121 b_848 in
let b_866 := proj_1 121 b_848 in
let y_867 := proj_2 121 b_848 in
let c_868 := proj_3 121 b_848 in
case t0_865 of {
| Red =>
let y_869 := Red() in
let y_870 := Black() in
let y_871 := Node(y_870,l_785,y_786,b_866) in
let y_872 := Black() in
let y_873 := Node(y_872,c_868,y_849,d_850) in
let y_874 := Node(y_869,y_871,y_867,y_873) in
halt y_874
| Black =>
case d_850 of {
| Leaf =>
let y_875 := Black() in
let y_876 := Node(y_875,l_785,y_786,y_844) in
halt y_876
| Node =>
let t1_877 := proj_0 121 d_850 in
let c_878 := proj_1 121 d_850 in
let z_879 := proj_2 121 d_850 in
let d_880 := proj_3 121 d_850 in
case t1_877 of {
| Red =>
let y_881 := Red() in
let y_882 := Black() in
let y_883 := Node(y_882,l_785,y_786,b_848) in
let y_884 := Black() in
let y_885 := Node(y_884,c_878,z_879,d_880) in
let y_886 := Node(y_881,y_883,y_849,y_885) in
halt y_886
| Black =>
let y_887 := Black() in
let y_888 := Node(y_887,l_785,y_786,y_844) in
halt y_888
}
}
}
}
| Black =>
let y_889 := Black() in
let y_890 := Node(y_889,l_785,y_786,y_844) in
halt y_890
}
}
}
}
}
fun CertiCoq.Benchmarks.lib.vs.M.Raw.add_wrapper_126<3>(env_891,x_892) :=
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_893 := proj_0 251 env_891 in
let env_894 := con_248(x_892,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_893) in
let y_wrapper_clo_895 := con_15(y_wrapper_123,env_894) in
halt y_wrapper_clo_895
fun CertiCoq.Benchmarks.lib.vs.M.this_known_127<304>(t_897) :=
case t_897 of {
| Mkt =>
let this_898 := proj_0 116 t_897 in
halt this_898
}
fun y_wrapper_128<3>(env_899,c_900) :=
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_901 := proj_1 259 env_899 in
let s0_proj_902 := proj_0 259 env_899 in
let y_904 := app CertiCoq.Benchmarks.lib.vs.M.this_known_127<304>(s0_proj_902) in
let y_906 := app CertiCoq.Benchmarks.lib.vs.M.Raw.add_uncurried_known_124<4>(y_904,c_900,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_901) in
let y_907 := con_99() in
let y_908 := Mkt(y_906,y_907) in
halt y_908
fun y_wrapper_129<3>(env_909,s0_910) :=
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_911 := proj_0 261 env_909 in
let env_912 := con_259(s0_910,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_911) in
let y_wrapper_clo_913 := con_15(y_wrapper_128,env_912) in
halt y_wrapper_clo_913
fun filter_known_130<19>(l_915,f_916) :=
case l_915 of {
| nil =>
let y_917 := nil() in
halt y_917
| cons =>
let x_918 := proj_0 149 l_915 in
let l_919 := proj_1 149 l_915 in
let f_code_920 := proj_0 15 f_916 in
let f_env_921 := proj_1 15 f_916 in
let y_922 := app f_code_920<3>(f_env_921,x_918) in
case y_922 of {
| true =>
let y_923 := app filter_known_130<19>(l_919,f_916) in
let y_924 := cons(x_918,y_923) in
halt y_924
| false =>
filter_known_130<19>(l_919,f_916)
}
}
fun CertiCoq.Benchmarks.lib.vs.VeriStar.pureb_known_131<305>(c_926) :=
case c_926 of {
| PureClause =>
let y_927 := true() in
halt y_927
| PosSpaceClause =>
let y_928 := false() in
halt y_928
| NegSpaceClause =>
let y_929 := false() in
halt y_929
}
fun CertiCoq.Benchmarks.lib.vs.VeriStar.pureb_wrapper_132<3>(env_930,c_931) :=
CertiCoq.Benchmarks.lib.vs.VeriStar.pureb_known_131<305>(c_931)
fun map_known_133<19>(l_934,f_935) :=
case l_934 of {
| nil =>
let y_936 := nil() in
halt y_936
| cons =>
let a_937 := proj_0 149 l_934 in
let t_938 := proj_1 149 l_934 in
let f_code_939 := proj_0 15 f_935 in
let f_env_940 := proj_1 15 f_935 in
let y_941 := app f_code_939<3>(f_env_940,a_937) in
let y_942 := app map_known_133<19>(t_938,f_935) in
let y_943 := cons(y_941,y_942) in
halt y_943
}
fun y_134<19>(env_944,delta_945) :=
let gamma_proj_946 := proj_0 282 env_944 in
let CertiCoq.Benchmarks.lib.vs.var2_proj_947 := proj_3 282 env_944 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_949 := proj_2 282 env_944 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_951 := proj_1 282 env_944 in
let y_953 := app list_prio_uncurried_uncurried_uncurried_known_104<4>(CertiCoq.Benchmarks.lib.vs.var0_proj_951,delta_945,CertiCoq.Benchmarks.lib.vs.var1_proj_949) in
let y_955 := app list_prio_uncurried_uncurried_uncurried_known_104<4>(y_953,gamma_proj_946,CertiCoq.Benchmarks.lib.vs.var2_proj_947) in
let y_956 := con_99() in
let gamma_proj_957 := proj_0 282 env_944 in
let y_958 := PureClause(gamma_proj_957,delta_945,y_955,y_956) in
halt y_958
fun insert_uniq_uncurried_uncurried_uncurried_known_135<4>(l_960,a_961,cmp_962) :=
case l_960 of {
| nil =>
let y_964 := nil() in
let y_965 := cons(a_961,y_964) in
halt y_965
| cons =>
let h_966 := proj_0 149 l_960 in
let t_967 := proj_1 149 l_960 in
let cmp_code_968 := proj_0 15 cmp_962 in
let cmp_env_969 := proj_1 15 cmp_962 in
let y_970 := app cmp_code_968<3>(cmp_env_969,a_961) in
let y_code_971 := proj_0 15 y_970 in
let y_env_972 := proj_1 15 y_970 in
let y_973 := app y_code_971<3>(y_env_972,h_966) in
case y_973 of {
| Eq =>
halt l_960
| Lt =>
let y_975 := app insert_uniq_uncurried_uncurried_uncurried_known_135<4>(t_967,a_961,cmp_962) in
let y_976 := cons(h_966,y_975) in
halt y_976
| Gt =>
let y_977 := cons(a_961,l_960) in
halt y_977
}
}
fun rsort_uniq_uncurried_uncurried_known_136<19>(l_979,cmp_980) :=
case l_979 of {
| nil =>
let y_982 := nil() in
halt y_982
| cons =>
let h_983 := proj_0 149 l_979 in
let t_984 := proj_1 149 l_979 in
let y_986 := app rsort_uniq_uncurried_uncurried_known_136<19>(t_984,cmp_980) in
insert_uniq_uncurried_uncurried_uncurried_known_135<4>(y_986,h_983,cmp_980)
}
fun CertiCoq.Benchmarks.lib.vs.order_eqv_pure_atom_known_137<19>(a_990,y_991) :=
case a_990 of {
| Eqv =>
let i_992 := proj_0 141 a_990 in
let j_993 := proj_1 141 a_990 in
let y_995 := app CertiCoq.Benchmarks.lib.vs.expr_cmp_uncurried_known_111<4>(j_993,i_992,y_991) in
case y_995 of {
| Eq =>
let y_996 := Eqv(i_992,j_993) in
halt y_996
| Lt =>
let y_997 := Eqv(j_993,i_992) in
halt y_997
| Gt =>
let y_998 := Eqv(i_992,j_993) in
halt y_998
}
}
fun CertiCoq.Benchmarks.lib.vs.order_eqv_pure_atom_wrapper_138<3>(env_999,a_1000) :=
let y_proj_1002 := proj_0 302 env_999 in
CertiCoq.Benchmarks.lib.vs.order_eqv_pure_atom_known_137<19>(a_1000,y_proj_1002)
fun CertiCoq.Benchmarks.lib.vs.nonreflex_atom_known_139<19>(a_1004,y_1005) :=
case a_1004 of {
| Eqv =>
let i_1006 := proj_0 141 a_1004 in
let j_1007 := proj_1 141 a_1004 in
let y_1009 := app CertiCoq.Benchmarks.lib.vs.expr_cmp_uncurried_known_111<4>(j_1007,i_1006,y_1005) in
case y_1009 of {
| Eq =>
let y_1010 := false() in
halt y_1010
| Lt =>
let y_1011 := true() in
halt y_1011
| Gt =>
let y_1012 := true() in
halt y_1012
}
}
fun CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_140<3>(env_1013,a_1014) :=
let y_proj_1016 := proj_0 306 env_1013 in
CertiCoq.Benchmarks.lib.vs.nonreflex_atom_known_139<19>(a_1014,y_proj_1016)
fun CertiCoq.Benchmarks.lib.vs.order_eqv_clause_141<3>(env_1017,c_1018) :=
case c_1018 of {
| PureClause =>
let pa_1019 := proj_0 133 c_1018 in
let pa'_1020 := proj_1 133 c_1018 in
let CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_proj_1021 := proj_5 308 env_1017 in
let y_1023 := app filter_known_130<19>(pa_1019,CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_proj_1021) in
let CertiCoq.Benchmarks.lib.vs.order_eqv_pure_atom_wrapper_proj_1024 := proj_4 308 env_1017 in
let y_1026 := app map_known_133<19>(y_1023,CertiCoq.Benchmarks.lib.vs.order_eqv_pure_atom_wrapper_proj_1024) in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_1027 := proj_3 308 env_1017 in
let y_1030 := app rsort_uniq_uncurried_uncurried_known_136<19>(y_1026,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_1027) in
let CertiCoq.Benchmarks.lib.vs.order_eqv_pure_atom_wrapper_proj_1031 := proj_4 308 env_1017 in
let y_1033 := app map_known_133<19>(pa'_1020,CertiCoq.Benchmarks.lib.vs.order_eqv_pure_atom_wrapper_proj_1031) in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_1034 := proj_3 308 env_1017 in
let y_1037 := app rsort_uniq_uncurried_uncurried_known_136<19>(y_1033,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_1034) in
let CertiCoq.Benchmarks.lib.vs.var2_proj_1038 := proj_0 308 env_1017 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_1040 := proj_1 308 env_1017 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_1042 := proj_2 308 env_1017 in
let y_1044 := app list_prio_uncurried_uncurried_uncurried_known_104<4>(CertiCoq.Benchmarks.lib.vs.var0_proj_1042,y_1037,CertiCoq.Benchmarks.lib.vs.var1_proj_1040) in
let y_1046 := app list_prio_uncurried_uncurried_uncurried_known_104<4>(y_1044,y_1030,CertiCoq.Benchmarks.lib.vs.var2_proj_1038) in
let y_1047 := con_99() in
let y_1048 := PureClause(y_1030,y_1037,y_1046,y_1047) in
halt y_1048
| PosSpaceClause =>
let pa_1049 := proj_0 134 c_1018 in
let pa'_1050 := proj_1 134 c_1018 in
let sa'_1051 := proj_2 134 c_1018 in
let CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_proj_1052 := proj_5 308 env_1017 in
let y_1054 := app filter_known_130<19>(pa_1049,CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_proj_1052) in
let CertiCoq.Benchmarks.lib.vs.order_eqv_pure_atom_wrapper_proj_1055 := proj_4 308 env_1017 in
let y_1057 := app map_known_133<19>(y_1054,CertiCoq.Benchmarks.lib.vs.order_eqv_pure_atom_wrapper_proj_1055) in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_1058 := proj_3 308 env_1017 in
let y_1061 := app rsort_uniq_uncurried_uncurried_known_136<19>(y_1057,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_1058) in
let CertiCoq.Benchmarks.lib.vs.order_eqv_pure_atom_wrapper_proj_1062 := proj_4 308 env_1017 in
let y_1064 := app map_known_133<19>(pa'_1050,CertiCoq.Benchmarks.lib.vs.order_eqv_pure_atom_wrapper_proj_1062) in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_1065 := proj_3 308 env_1017 in
let y_1068 := app rsort_uniq_uncurried_uncurried_known_136<19>(y_1064,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_1065) in
let y_1069 := PosSpaceClause(y_1061,y_1068,sa'_1051) in
halt y_1069
| NegSpaceClause =>
let pa_1070 := proj_0 135 c_1018 in
let sa_1071 := proj_1 135 c_1018 in
let pa'_1072 := proj_2 135 c_1018 in
let CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_proj_1073 := proj_5 308 env_1017 in
let y_1075 := app filter_known_130<19>(pa_1070,CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_proj_1073) in
let CertiCoq.Benchmarks.lib.vs.order_eqv_pure_atom_wrapper_proj_1076 := proj_4 308 env_1017 in
let y_1078 := app map_known_133<19>(y_1075,CertiCoq.Benchmarks.lib.vs.order_eqv_pure_atom_wrapper_proj_1076) in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_1079 := proj_3 308 env_1017 in
let y_1082 := app rsort_uniq_uncurried_uncurried_known_136<19>(y_1078,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_1079) in
let CertiCoq.Benchmarks.lib.vs.order_eqv_pure_atom_wrapper_proj_1083 := proj_4 308 env_1017 in
let y_1085 := app map_known_133<19>(pa'_1072,CertiCoq.Benchmarks.lib.vs.order_eqv_pure_atom_wrapper_proj_1083) in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_1086 := proj_3 308 env_1017 in
let y_1089 := app rsort_uniq_uncurried_uncurried_known_136<19>(y_1085,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_1086) in
let y_1090 := NegSpaceClause(y_1082,sa_1071,y_1089) in
halt y_1090
}
fun mk_pureR_known_142<19>(al_1092,y_1093) :=
case al_1092 of {
| nil =>
let y_1094 := nil() in
let y_1095 := nil() in
let y_1096 := pair(y_1094,y_1095) in
halt y_1096
| cons =>
let p_1097 := proj_0 149 al_1092 in
let l'_1098 := proj_1 149 al_1092 in
case p_1097 of {
| Equ =>
let x_1099 := proj_0 126 p_1097 in
let y_1100 := proj_1 126 p_1097 in
let y_1101 := app mk_pureR_known_142<19>(l'_1098,y_1093) in
case y_1101 of {
| pair =>
let p_1102 := proj_0 147 y_1101 in
let n_1103 := proj_1 147 y_1101 in
let y_1104 := Eqv(x_1099,y_1100) in
let y_1106 := app CertiCoq.Benchmarks.lib.vs.order_eqv_pure_atom_known_137<19>(y_1104,y_1093) in
let y_1107 := cons(y_1106,p_1102) in
let y_1108 := pair(y_1107,n_1103) in
halt y_1108
}
| Nequ =>
let x_1109 := proj_0 127 p_1097 in
let y_1110 := proj_1 127 p_1097 in
let y_1111 := app mk_pureR_known_142<19>(l'_1098,y_1093) in
case y_1111 of {
| pair =>
let p_1112 := proj_0 147 y_1111 in
let n_1113 := proj_1 147 y_1111 in
let y_1114 := Eqv(x_1109,y_1110) in
let y_1116 := app CertiCoq.Benchmarks.lib.vs.order_eqv_pure_atom_known_137<19>(y_1114,y_1093) in
let y_1117 := cons(y_1116,n_1113) in
let y_1118 := pair(p_1112,y_1117) in
halt y_1118
}
}
}
fun app_uncurried_known_143<19>(m_1120,l_1121) :=
case l_1121 of {
| nil =>
halt m_1120
| cons =>
let a_1122 := proj_0 149 l_1121 in
let l1_1123 := proj_1 149 l_1121 in
let y_1124 := app app_uncurried_known_143<19>(m_1120,l1_1123) in
let y_1125 := cons(a_1122,y_1124) in
halt y_1125
}
fun CertiCoq.Benchmarks.lib.vs.mk_pureL_144<3>(env_1126,a_1127) :=
case a_1127 of {
| Equ =>
let x_1128 := proj_0 126 a_1127 in
let y_1129 := proj_1 126 a_1127 in
let y_1130 := nil() in
let y_1131 := Eqv(x_1128,y_1129) in
let y_proj_1133 := proj_3 336 env_1126 in
let y_1134 := app CertiCoq.Benchmarks.lib.vs.order_eqv_pure_atom_known_137<19>(y_1131,y_proj_1133) in
let y_1135 := nil() in
let y_1136 := cons(y_1134,y_1135) in
let CertiCoq.Benchmarks.lib.vs.var2_proj_1137 := proj_0 336 env_1126 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_1139 := proj_1 336 env_1126 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_1141 := proj_2 336 env_1126 in
let y_1143 := app list_prio_uncurried_uncurried_uncurried_known_104<4>(CertiCoq.Benchmarks.lib.vs.var0_proj_1141,y_1136,CertiCoq.Benchmarks.lib.vs.var1_proj_1139) in
let y_1145 := app list_prio_uncurried_uncurried_uncurried_known_104<4>(y_1143,y_1130,CertiCoq.Benchmarks.lib.vs.var2_proj_1137) in
let y_1146 := con_99() in
let y_1147 := PureClause(y_1130,y_1136,y_1145,y_1146) in
halt y_1147
| Nequ =>
let x_1148 := proj_0 127 a_1127 in
let y_1149 := proj_1 127 a_1127 in
let y_1150 := Eqv(x_1148,y_1149) in
let y_proj_1152 := proj_3 336 env_1126 in
let y_1153 := app CertiCoq.Benchmarks.lib.vs.order_eqv_pure_atom_known_137<19>(y_1150,y_proj_1152) in
let y_1154 := nil() in
let y_1155 := cons(y_1153,y_1154) in
let y_1156 := nil() in
let CertiCoq.Benchmarks.lib.vs.var2_proj_1157 := proj_0 336 env_1126 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_1159 := proj_1 336 env_1126 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_1161 := proj_2 336 env_1126 in
let y_1163 := app list_prio_uncurried_uncurried_uncurried_known_104<4>(CertiCoq.Benchmarks.lib.vs.var0_proj_1161,y_1156,CertiCoq.Benchmarks.lib.vs.var1_proj_1159) in
let y_1165 := app list_prio_uncurried_uncurried_uncurried_known_104<4>(y_1163,y_1155,CertiCoq.Benchmarks.lib.vs.var2_proj_1157) in
let y_1166 := con_99() in
let y_1167 := PureClause(y_1155,y_1156,y_1165,y_1166) in
halt y_1167
}
fun eqb_uncurried_known_145<19>(q_1169,p_1170) :=
case p_1170 of {
| xI =>
let p_1171 := proj_0 144 p_1170 in
case q_1169 of {
| xI =>
let q_1172 := proj_0 144 q_1169 in
eqb_uncurried_known_145<19>(q_1172,p_1171)
| xO =>
let y_1173 := false() in
halt y_1173
| xH =>
let y_1174 := false() in
halt y_1174
}
| xO =>
let p_1175 := proj_0 145 p_1170 in
case q_1169 of {
| xI =>
let y_1176 := false() in
halt y_1176
| xO =>
let q_1177 := proj_0 145 q_1169 in
eqb_uncurried_known_145<19>(q_1177,p_1175)
| xH =>
let y_1178 := false() in
halt y_1178
}
| xH =>
case q_1169 of {
| xI =>
let y_1179 := false() in
halt y_1179
| xO =>
let y_1180 := false() in
halt y_1180
| xH =>
let y_1181 := true() in
halt y_1181
}
}
fun elements_aux_uncurried_known_146<19>(s_1183,acc_1184) :=
case s_1183 of {
| Leaf =>
halt acc_1184
| Node =>
let l_1185 := proj_1 121 s_1183 in
let x_1186 := proj_2 121 s_1183 in
let r_1187 := proj_3 121 s_1183 in
let y_1188 := app elements_aux_uncurried_known_146<19>(r_1187,acc_1184) in
let y_1189 := cons(x_1186,y_1188) in
elements_aux_uncurried_known_146<19>(l_1185,y_1189)
}
fun Coq.Init.Datatypes.orb_uncurried_known_147<19>(b2_1191,b1_1192) :=
case b1_1192 of {
| true =>
let y_1193 := true() in
halt y_1193
| false =>
halt b2_1191
}
fun existsb_known_148<19>(l_1195,f_1196) :=
case l_1195 of {
| nil =>
let y_1197 := false() in
halt y_1197
| cons =>
let a_1198 := proj_0 149 l_1195 in
let l_1199 := proj_1 149 l_1195 in
let f_code_1200 := proj_0 15 f_1196 in
let f_env_1201 := proj_1 15 f_1196 in
let y_1202 := app f_code_1200<3>(f_env_1201,a_1198) in
let y_1203 := app existsb_known_148<19>(l_1199,f_1196) in
Coq.Init.Datatypes.orb_uncurried_known_147<19>(y_1203,y_1202)
}
fun CertiCoq.Benchmarks.lib.vs.Superposition.is_empty_clause_known_149<306>(cl_1206) :=
case cl_1206 of {
| PureClause =>
let gamma_1207 := proj_0 133 cl_1206 in
let delta_1208 := proj_1 133 cl_1206 in
case gamma_1207 of {
| nil =>
case delta_1208 of {
| nil =>
let y_1209 := true() in
halt y_1209
| cons =>
let y_1210 := false() in
halt y_1210
}
| cons =>
let y_1211 := false() in
halt y_1211
}
| PosSpaceClause =>
let y_1212 := false() in
halt y_1212
| NegSpaceClause =>
let y_1213 := false() in
halt y_1213
}
fun CertiCoq.Benchmarks.lib.vs.Superposition.is_empty_clause_wrapper_150<3>(env_1214,cl_1215) :=
CertiCoq.Benchmarks.lib.vs.Superposition.is_empty_clause_known_149<306>(cl_1215)
fun y_known_151<19>(a_1218,y_1219) :=
case a_1218 of {
| Eqv =>
let e1_1220 := proj_0 141 a_1218 in
let e2_1221 := proj_1 141 a_1218 in
let y_1223 := app CertiCoq.Benchmarks.lib.vs.expr_cmp_uncurried_known_111<4>(e2_1221,e1_1220,y_1219) in
case y_1223 of {
| Eq =>
let y_1224 := false() in
halt y_1224
| Lt =>
let y_1225 := true() in
halt y_1225
| Gt =>
let y_1226 := true() in
halt y_1226
}
}
fun y_wrapper_152<3>(env_1227,a_1228) :=
let y_proj_1230 := proj_0 357 env_1227 in
y_known_151<19>(a_1228,y_proj_1230)
fun CertiCoq.Benchmarks.lib.vs.Superposition.delete_resolved_153<3>(env_1231,c_1232) :=
case c_1232 of {
| PureClause =>
let neg_1233 := proj_0 133 c_1232 in
let pos_1234 := proj_1 133 c_1232 in
let y_wrapper_proj_1235 := proj_5 359 env_1231 in
let y_1237 := app filter_known_130<19>(neg_1233,y_wrapper_proj_1235) in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_1238 := proj_4 359 env_1231 in
let y_1241 := app rsort_uniq_uncurried_uncurried_known_136<19>(y_1237,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_1238) in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_1242 := proj_4 359 env_1231 in
let y_1245 := app rsort_uniq_uncurried_uncurried_known_136<19>(pos_1234,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_1242) in
let CertiCoq.Benchmarks.lib.vs.var2_proj_1246 := proj_0 359 env_1231 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_1248 := proj_1 359 env_1231 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_1250 := proj_2 359 env_1231 in
let y_1252 := app list_prio_uncurried_uncurried_uncurried_known_104<4>(CertiCoq.Benchmarks.lib.vs.var0_proj_1250,y_1245,CertiCoq.Benchmarks.lib.vs.var1_proj_1248) in
let y_1254 := app list_prio_uncurried_uncurried_uncurried_known_104<4>(y_1252,y_1241,CertiCoq.Benchmarks.lib.vs.var2_proj_1246) in
let y_1255 := con_99() in
let y_1256 := PureClause(y_1241,y_1245,y_1254,y_1255) in
halt y_1256
| PosSpaceClause =>
halt c_1232
| NegSpaceClause =>
halt c_1232
}
fun fold_right_known_154<4>(l_1258,a0_1259,f_1260) :=
case l_1258 of {
| nil =>
halt a0_1259
| cons =>
let b_1261 := proj_0 149 l_1258 in
let t_1262 := proj_1 149 l_1258 in
let f_code_1263 := proj_0 15 f_1260 in
let f_env_1264 := proj_1 15 f_1260 in
let y_1265 := app f_code_1263<3>(f_env_1264,b_1261) in
let y_1266 := app fold_right_known_154<4>(t_1262,a0_1259,f_1260) in
let y_code_1267 := proj_0 15 y_1265 in
let y_env_1268 := proj_1 15 y_1265 in
y_code_1267<3>(y_env_1268,y_1266)
}
fun Coq.Init.Specif.sumbool_rec_uncurried_uncurried_uncurried_uncurried_uncurried_known_155<4>(s_1270,f_1271,f_1272) :=
case s_1270 of {
| left =>
let y_1276 := con_99() in
let f_code_1277 := proj_0 15 f_1272 in
let f_env_1278 := proj_1 15 f_1272 in
f_code_1277<3>(f_env_1278,y_1276)
| right =>
let y_1279 := con_99() in
let f_code_1280 := proj_0 15 f_1271 in
let f_env_1281 := proj_1 15 f_1271 in
f_code_1280<3>(f_env_1281,y_1279)
}
fun y_known_156<307>(x0_1283) :=
case x0_1283 of {
| xI =>
let y_1284 := con_99() in
let y_1285 := right(y_1284) in
halt y_1285
| xO =>
let y_1286 := con_99() in
let y_1287 := right(y_1286) in
halt y_1287
| xH =>
let y_1288 := con_99() in
let y_1289 := left(y_1288) in
halt y_1289
}
fun y_wrapper_157<3>(env_1290,x0_1291) :=
y_known_156<307>(x0_1291)
fun F_known_158<308>(p_1294) :=
case p_1294 of {
| xI =>
let p_1295 := proj_0 144 p_1294 in
let y_1296 := app F_known_158<308>(p_1295) in
let env_1297 := con_394(y_1296) in
let y_wrapper_clo_1298 := con_15(y_wrapper_162,env_1297) in
halt y_wrapper_clo_1298
| xO =>
let p_1299 := proj_0 145 p_1294 in
let y_1300 := app F_known_158<308>(p_1299) in
let env_1301 := con_404(y_1300) in
let y_wrapper_clo_1302 := con_15(y_wrapper_166,env_1301) in
halt y_wrapper_clo_1302
| xH =>
let y_wrapperbogus_env_1303 := con_406() in
let y_wrapper_clo_1304 := con_15(y_wrapper_157,y_wrapperbogus_env_1303) in
halt y_wrapper_clo_1304
}
fun y_known_159<19>(x0_1306,y_1307) :=
case x0_1306 of {
| xI =>
let p_1308 := proj_0 144 x0_1306 in
let env_1312 := con_388() in
let env_1313 := con_391() in
let y_code_1314 := proj_0 15 y_1307 in
let y_env_1315 := proj_1 15 y_1307 in
let y_1316 := app y_code_1314<3>(y_env_1315,p_1308) in
let y_wrapper_clo_1318 := con_15(y_wrapper_161,env_1313) in
let y_wrapper_clo_1319 := con_15(y_wrapper_160,env_1312) in
Coq.Init.Specif.sumbool_rec_uncurried_uncurried_uncurried_uncurried_uncurried_known_155<4>(y_1316,y_wrapper_clo_1318,y_wrapper_clo_1319)
| xO =>
let y_1320 := con_99() in
let y_1321 := right(y_1320) in
halt y_1321
| xH =>
let y_1322 := con_99() in
let y_1323 := right(y_1322) in
halt y_1323
}
fun y_wrapper_160<3>(env_1324,a_1325) :=
let y_1326 := con_99() in
let y_1327 := left(y_1326) in
halt y_1327
fun y_wrapper_161<3>(env_1328,diseq_1329) :=
let y_1330 := con_99() in
let y_1331 := right(y_1330) in
halt y_1331
fun y_wrapper_162<3>(env_1332,x0_1333) :=
let y_proj_1335 := proj_0 394 env_1332 in
y_known_159<19>(x0_1333,y_proj_1335)
fun y_known_163<19>(x0_1337,y_1338) :=
case x0_1337 of {
| xI =>
let y_1339 := con_99() in
let y_1340 := right(y_1339) in
halt y_1340
| xO =>
let p_1341 := proj_0 145 x0_1337 in
let env_1345 := con_398() in
let env_1346 := con_401() in
let y_code_1347 := proj_0 15 y_1338 in
let y_env_1348 := proj_1 15 y_1338 in
let y_1349 := app y_code_1347<3>(y_env_1348,p_1341) in
let y_wrapper_clo_1351 := con_15(y_wrapper_165,env_1346) in
let y_wrapper_clo_1352 := con_15(y_wrapper_164,env_1345) in
Coq.Init.Specif.sumbool_rec_uncurried_uncurried_uncurried_uncurried_uncurried_known_155<4>(y_1349,y_wrapper_clo_1351,y_wrapper_clo_1352)
| xH =>
let y_1353 := con_99() in
let y_1354 := right(y_1353) in
halt y_1354
}
fun y_wrapper_164<3>(env_1355,a_1356) :=
let y_1357 := con_99() in
let y_1358 := left(y_1357) in
halt y_1358
fun y_wrapper_165<3>(env_1359,diseq_1360) :=
let y_1361 := con_99() in
let y_1362 := right(y_1361) in
halt y_1362
fun y_wrapper_166<3>(env_1363,x0_1364) :=
let y_proj_1366 := proj_0 404 env_1363 in
y_known_163<19>(x0_1364,y_proj_1366)
fun CertiCoq.Benchmarks.lib.vs.subst_expr_uncurried_uncurried_known_167<4>(t'_1368,t_1369,i_1370) :=
case t'_1368 of {
| Nil =>
let y_1371 := Nil() in
halt y_1371
| Var =>
let j_1372 := proj_0 143 t'_1368 in
let y_1374 := app F_known_158<308>(i_1370) in
let y_code_1375 := proj_0 15 y_1374 in
let y_env_1376 := proj_1 15 y_1374 in
let y_1377 := app y_code_1375<3>(y_env_1376,j_1372) in
case y_1377 of {
| left =>
halt t_1369
| right =>
halt t'_1368
}
}
fun y_known_168<4>(a_1379,t_1380,i_1381) :=
case a_1379 of {
| Eqv =>
let t1_1382 := proj_0 141 a_1379 in
let t2_1383 := proj_1 141 a_1379 in
let y_1385 := app CertiCoq.Benchmarks.lib.vs.subst_expr_uncurried_uncurried_known_167<4>(t1_1382,t_1380,i_1381) in
let y_1387 := app CertiCoq.Benchmarks.lib.vs.subst_expr_uncurried_uncurried_known_167<4>(t2_1383,t_1380,i_1381) in
let y_1388 := Eqv(y_1385,y_1387) in
halt y_1388
}
fun y_wrapper_169<3>(env_1389,a_1390) :=
let t_proj_1392 := proj_0 413 env_1389 in
let i_proj_1393 := proj_1 413 env_1389 in
y_known_168<4>(a_1390,t_proj_1392,i_proj_1393)
fun Coq.Init.Datatypes.fst_uncurried_uncurried_known_170<309>(p_1395) :=
case p_1395 of {
| pair =>
let x_1398 := proj_0 147 p_1395 in
halt x_1398
}
fun Coq.Init.Datatypes.snd_uncurried_uncurried_known_171<310>(p_1400) :=
case p_1400 of {
| pair =>
let y_1403 := proj_1 147 p_1400 in
halt y_1403
}
fun Coq.Init.Datatypes.negb_known_172<311>(b_1405) :=
case b_1405 of {
| true =>
let y_1406 := false() in
halt y_1406
| false =>
let y_1407 := true() in
halt y_1407
}
fun Coq.Init.Datatypes.andb_uncurried_known_173<19>(b2_1409,b1_1410) :=
case b1_1410 of {
| true =>
halt b2_1409
| false =>
let y_1411 := false() in
halt y_1411
}
fun forallb_known_174<19>(l_1413,f_1414) :=
case l_1413 of {
| nil =>
let y_1415 := true() in
halt y_1415
| cons =>
let a_1416 := proj_0 149 l_1413 in
let l_1417 := proj_1 149 l_1413 in
let f_code_1418 := proj_0 15 f_1414 in
let f_env_1419 := proj_1 15 f_1414 in
let y_1420 := app f_code_1418<3>(f_env_1419,a_1416) in
let y_1421 := app forallb_known_174<19>(l_1417,f_1414) in
Coq.Init.Datatypes.andb_uncurried_known_173<19>(y_1421,y_1420)
}
fun CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_175<5>(env_1423,delta_1424,gamma_1425,R_1426) :=
let y_proj_1427 := proj_0 423 env_1423 in
let y_wrapper_proj_1428 := proj_2 423 env_1423 in
let env_1429 := con_424(y_proj_1427,y_wrapper_proj_1428) in
let y_wrapper_proj_1430 := proj_2 423 env_1423 in
let y_1432 := app filter_known_130<19>(gamma_1425,y_wrapper_proj_1430) in
let y_clo_1433 := con_15(y_176,env_1429) in
let y_1435 := app fold_right_known_154<4>(R_1426,y_1432,y_clo_1433) in
case y_1435 of {
| nil =>
let env_1436 := con_441() in
let y_wrapper_clo_1437 := con_15(y_wrapper_180,env_1436) in
let y_1439 := app fold_right_known_154<4>(R_1426,delta_1424,y_wrapper_clo_1437) in
let CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_proj_1440 := proj_1 423 env_1423 in
let y_1442 := app forallb_known_174<19>(y_1439,CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_proj_1440) in
Coq.Init.Datatypes.negb_known_172<311>(y_1442)
| cons =>
let y_1444 := true() in
halt y_1444
}
fun y_176<3>(env_1445,ve_1446) :=
let y_1450 := app Coq.Init.Datatypes.fst_uncurried_uncurried_known_170<309>(ve_1446) in
let y_1454 := app Coq.Init.Datatypes.snd_uncurried_uncurried_known_171<310>(ve_1446) in
let y_proj_1455 := proj_0 424 env_1445 in
let y_wrapper_proj_1456 := proj_1 424 env_1445 in
let env_1457 := con_430(y_proj_1455,y_1450,y_1454,y_wrapper_proj_1456) in
let y_wrapper_clo_1458 := con_15(y_wrapper_177,env_1457) in
halt y_wrapper_clo_1458
fun y_wrapper_177<3>(env_1459,a_1460) :=
let y_wrapper_proj_1461 := proj_3 430 env_1459 in
let y_proj_1462 := proj_1 430 env_1459 in
let y_proj_1463 := proj_2 430 env_1459 in
let env_1464 := con_413(y_proj_1463,y_proj_1462) in
let y_wrapper_clo_1465 := con_15(y_wrapper_169,env_1464) in
let y_1467 := app map_known_133<19>(a_1460,y_wrapper_clo_1465) in
filter_known_130<19>(y_1467,y_wrapper_proj_1461)
fun y_known_178<312>(ve_1470) :=
let y_1474 := app Coq.Init.Datatypes.fst_uncurried_uncurried_known_170<309>(ve_1470) in
let y_1478 := app Coq.Init.Datatypes.snd_uncurried_uncurried_known_171<310>(ve_1470) in
let env_1479 := con_439(y_1474,y_1478) in
let y_wrapper_clo_1480 := con_15(y_wrapper_179,env_1479) in
halt y_wrapper_clo_1480
fun y_wrapper_179<3>(env_1481,pa_1482) :=
let y_proj_1483 := proj_0 439 env_1481 in
let y_proj_1484 := proj_1 439 env_1481 in
let env_1485 := con_413(y_proj_1484,y_proj_1483) in
let y_wrapper_clo_1486 := con_15(y_wrapper_169,env_1485) in
map_known_133<19>(pa_1482,y_wrapper_clo_1486)
fun y_wrapper_180<3>(env_1488,ve_1489) :=
y_known_178<312>(ve_1489)
fun rev_known_181<313>(l_1492) :=
case l_1492 of {
| nil =>
let y_1493 := nil() in
halt y_1493
| cons =>
let x_1494 := proj_0 149 l_1492 in
let l'_1495 := proj_1 149 l_1492 in
let y_1496 := app rev_known_181<313>(l'_1495) in
let y_1497 := nil() in
let y_1498 := cons(x_1494,y_1497) in
app_uncurried_known_143<19>(y_1498,y_1496)
}
fun CertiCoq.Benchmarks.lib.vs.greater_than_expr_uncurried_known_182<4>(e_1501,i_1502,y_1503) :=
case e_1501 of {
| Nil =>
let y_1504 := true() in
halt y_1504
| Var =>
let j_1505 := proj_0 143 e_1501 in
let y_1507 := app compare_cont_uncurried_uncurried_known_107<4>(j_1505,i_1502,y_1503) in
case y_1507 of {
| Eq =>
let y_1508 := false() in
halt y_1508
| Lt =>
let y_1509 := false() in
halt y_1509
| Gt =>
let y_1510 := true() in
halt y_1510
}
}
fun y_known_183<4>(a_1512,y_1513,i_1514) :=
case a_1512 of {
| Eqv =>
let x_1515 := proj_0 141 a_1512 in
let y_1516 := proj_1 141 a_1512 in
let y_1518 := app CertiCoq.Benchmarks.lib.vs.greater_than_expr_uncurried_known_182<4>(x_1515,i_1514,y_1513) in
let y_1520 := app CertiCoq.Benchmarks.lib.vs.greater_than_expr_uncurried_known_182<4>(y_1516,i_1514,y_1513) in
Coq.Init.Datatypes.andb_uncurried_known_173<19>(y_1520,y_1518)
}
fun y_wrapper_184<3>(env_1522,a_1523) :=
let y_proj_1525 := proj_1 456 env_1522 in
let i_proj_1526 := proj_0 456 env_1522 in
y_known_183<4>(a_1523,y_proj_1525,i_proj_1526)
fun CertiCoq.Benchmarks.lib.vs.expr_lt_uncurried_known_185<4>(b_1528,a_1529,y_1530) :=
let y_1532 := app CertiCoq.Benchmarks.lib.vs.expr_cmp_uncurried_known_111<4>(b_1528,a_1529,y_1530) in
case y_1532 of {
| Eq =>
let y_1533 := false() in
halt y_1533
| Lt =>
let y_1534 := true() in
halt y_1534
| Gt =>
let y_1535 := false() in
halt y_1535
}
fun CertiCoq.Benchmarks.lib.vs.expr_geq_uncurried_known_186<4>(b_1537,a_1538,y_1539) :=
let y_1541 := app CertiCoq.Benchmarks.lib.vs.expr_cmp_uncurried_known_111<4>(b_1537,a_1538,y_1539) in
case y_1541 of {
| Eq =>
let y_1542 := true() in
halt y_1542
| Lt =>
let y_1543 := false() in
halt y_1543
| Gt =>
let y_1544 := true() in
halt y_1544
}
fun CertiCoq.Benchmarks.lib.vs.expr_eq_uncurried_known_187<4>(b_1546,a_1547,y_1548) :=
let y_1550 := app CertiCoq.Benchmarks.lib.vs.expr_cmp_uncurried_known_111<4>(b_1546,a_1547,y_1548) in
case y_1550 of {
| Eq =>
let y_1551 := true() in
halt y_1551
| Lt =>
let y_1552 := false() in
halt y_1552
| Gt =>
let y_1553 := false() in
halt y_1553
}
fun CertiCoq.Benchmarks.lib.vs.norm_pure_atom_known_188<19>(a_1555,y_1556) :=
case a_1555 of {
| Eqv =>
let i_1557 := proj_0 141 a_1555 in
let j_1558 := proj_1 141 a_1555 in
let y_1560 := app CertiCoq.Benchmarks.lib.vs.expr_lt_uncurried_known_185<4>(j_1558,i_1557,y_1556) in
case y_1560 of {
| true =>
let y_1561 := Eqv(j_1558,i_1557) in
halt y_1561
| false =>
let y_1562 := Eqv(i_1557,j_1558) in
halt y_1562
}
}
fun CertiCoq.Benchmarks.lib.vs.Superposition.rewrite_by_uncurried_uncurried_known_189<104>(atm_1564,t_1565,s_1566,y_1567) :=
case atm_1564 of {
| Eqv =>
let u_1568 := proj_0 141 atm_1564 in
let v_1569 := proj_1 141 atm_1564 in
let y_1571 := app CertiCoq.Benchmarks.lib.vs.expr_eq_uncurried_known_187<4>(u_1568,s_1566,y_1567) in
case y_1571 of {
| true =>
let y_1573 := app CertiCoq.Benchmarks.lib.vs.expr_eq_uncurried_known_187<4>(v_1569,s_1566,y_1567) in
case y_1573 of {
| true =>
let y_1574 := Eqv(t_1565,t_1565) in
CertiCoq.Benchmarks.lib.vs.norm_pure_atom_known_188<19>(y_1574,y_1567)
| false =>
let y_1576 := Eqv(t_1565,v_1569) in
CertiCoq.Benchmarks.lib.vs.norm_pure_atom_known_188<19>(y_1576,y_1567)
}
| false =>
let y_1579 := app CertiCoq.Benchmarks.lib.vs.expr_eq_uncurried_known_187<4>(v_1569,s_1566,y_1567) in
case y_1579 of {
| true =>
let y_1580 := Eqv(u_1568,t_1565) in
CertiCoq.Benchmarks.lib.vs.norm_pure_atom_known_188<19>(y_1580,y_1567)
| false =>
halt atm_1564
}
}
}
fun f_case_known_190<19>(s_1583,y_1584) :=
case s_1583 of {
| PureClause =>
let neg_1585 := proj_0 133 s_1583 in
let pos_1586 := proj_1 133 s_1583 in
let env_1587 := con_485(pos_1586,y_1584) in
let y_wrapper_clo_1588 := con_15(y_wrapper_193,env_1587) in
let y_1590 := app existsb_known_148<19>(neg_1585,y_wrapper_clo_1588) in
let env_1591 := con_490(y_1584) in
let y_wrapper_clo_1592 := con_15(y_wrapper_195,env_1591) in
let y_1594 := app existsb_known_148<19>(pos_1586,y_wrapper_clo_1592) in
Coq.Init.Datatypes.orb_uncurried_known_147<19>(y_1594,y_1590)
| PosSpaceClause =>
let y_1596 := false() in
halt y_1596
| NegSpaceClause =>
let y_1597 := false() in
halt y_1597
}
fun y_known_191<4>(b_1599,y_1600,a_1601) :=
let y_1603 := app CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_uncurried_known_114<4>(b_1599,a_1601,y_1600) in
case y_1603 of {
| Eq =>
let y_1604 := true() in
halt y_1604
| Lt =>
let y_1605 := false() in
halt y_1605
| Gt =>
let y_1606 := false() in
halt y_1606
}
fun y_wrapper_192<3>(env_1607,b_1608) :=
let y_proj_1610 := proj_1 482 env_1607 in
let a_proj_1611 := proj_0 482 env_1607 in
y_known_191<4>(b_1608,y_proj_1610,a_proj_1611)
fun y_wrapper_193<3>(env_1612,a_1613) :=
let y_proj_1614 := proj_1 485 env_1612 in
let pos_proj_1615 := proj_0 485 env_1612 in
let env_1616 := con_482(a_1613,y_proj_1614) in
let y_wrapper_clo_1617 := con_15(y_wrapper_192,env_1616) in
existsb_known_148<19>(pos_proj_1615,y_wrapper_clo_1617)
fun y_known_194<19>(a_1620,y_1621) :=
case a_1620 of {
| Eqv =>
let e1_1622 := proj_0 141 a_1620 in
let e2_1623 := proj_1 141 a_1620 in
CertiCoq.Benchmarks.lib.vs.expr_eq_uncurried_known_187<4>(e2_1623,e1_1622,y_1621)
}
fun y_wrapper_195<3>(env_1625,a_1626) :=
let y_proj_1628 := proj_0 490 env_1625 in
y_known_194<19>(a_1626,y_proj_1628)
fun CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_196<3>(env_1629,c_1630) :=
let y_proj_1631 := proj_0 495 env_1629 in
let y_1633 := app f_case_known_190<19>(c_1630,y_proj_1631) in
Coq.Init.Datatypes.negb_known_172<311>(y_1633)
fun CertiCoq.Benchmarks.lib.vs.Superposition.rewrite_expr_uncurried_uncurried_known_197<104>(u_1636,t_1637,s_1638,y_1639) :=
let y_1641 := app CertiCoq.Benchmarks.lib.vs.expr_eq_uncurried_known_187<4>(u_1636,s_1638,y_1639) in
case y_1641 of {
| true =>
halt t_1637
| false =>
halt u_1636
}
fun CertiCoq.Benchmarks.lib.vs.Superposition.rewrite_in_space_uncurried_uncurried_known_198<104>(atm_1643,t_1644,s_1645,y_1646) :=
case atm_1643 of {
| Next =>
let u_1647 := proj_0 136 atm_1643 in
let v_1648 := proj_1 136 atm_1643 in
let y_1650 := app CertiCoq.Benchmarks.lib.vs.Superposition.rewrite_expr_uncurried_uncurried_known_197<104>(u_1647,t_1644,s_1645,y_1646) in
let y_1652 := app CertiCoq.Benchmarks.lib.vs.Superposition.rewrite_expr_uncurried_uncurried_known_197<104>(v_1648,t_1644,s_1645,y_1646) in
let y_1653 := Next(y_1650,y_1652) in
halt y_1653
| Lseg =>
let u_1654 := proj_0 137 atm_1643 in
let v_1655 := proj_1 137 atm_1643 in
let y_1657 := app CertiCoq.Benchmarks.lib.vs.Superposition.rewrite_expr_uncurried_uncurried_known_197<104>(u_1654,t_1644,s_1645,y_1646) in
let y_1659 := app CertiCoq.Benchmarks.lib.vs.Superposition.rewrite_expr_uncurried_uncurried_known_197<104>(v_1655,t_1644,s_1645,y_1646) in
let y_1660 := Lseg(y_1657,y_1659) in
halt y_1660
}
fun CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_199<4>(env_1661,c_1662,l_1663) :=
let CertiCoq.Benchmarks.lib.vs.var2_proj_1664 := proj_0 504 env_1661 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_1665 := proj_1 504 env_1661 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_1666 := proj_2 504 env_1661 in
let y_proj_1667 := proj_3 504 env_1661 in
let env_1668 := con_505(CertiCoq.Benchmarks.lib.vs.var2_proj_1664,CertiCoq.Benchmarks.lib.vs.var1_proj_1665,CertiCoq.Benchmarks.lib.vs.var0_proj_1666,y_proj_1667) in
let y_clo_1669 := con_15(y_200,env_1668) in
let env_1670 := con_186(y_clo_1669) in
let y_1671 := app fold_left_uncurried_106<4>(env_1670,c_1662,l_1663) in
let CertiCoq.Benchmarks.lib.vs.Superposition.delete_resolved_proj_1672 := proj_4 504 env_1661 in
let CertiCoq.Benchmarks.lib.vs.Superposition.delete_resolved_code_1673 := proj_0 15 CertiCoq.Benchmarks.lib.vs.Superposition.delete_resolved_proj_1672 in
let CertiCoq.Benchmarks.lib.vs.Superposition.delete_resolved_env_1674 := proj_1 15 CertiCoq.Benchmarks.lib.vs.Superposition.delete_resolved_proj_1672 in
CertiCoq.Benchmarks.lib.vs.Superposition.delete_resolved_code_1673<3>(CertiCoq.Benchmarks.lib.vs.Superposition.delete_resolved_env_1674,y_1671)
fun y_200<3>(env_1675,d_1676) :=
let y_uncurried_clo_1677 := con_15(y_uncurried_202,env_1675) in
let env_1678 := con_507(y_uncurried_clo_1677,d_1676) in
let y_wrapper_clo_1679 := con_15(y_wrapper_201,env_1678) in
halt y_wrapper_clo_1679
fun y_wrapper_201<3>(env_1680,c_1681) :=
let y_uncurried_proj_1682 := proj_0 507 env_1680 in
let d_proj_1683 := proj_1 507 env_1680 in
let y_uncurried_code_1684 := proj_0 15 y_uncurried_proj_1682 in
let y_uncurried_env_1685 := proj_1 15 y_uncurried_proj_1682 in
y_uncurried_code_1684<4>(y_uncurried_env_1685,c_1681,d_proj_1683)
fun y_uncurried_202<4>(env_1686,c_1687,d_1688) :=
case c_1687 of {
| PureClause =>
let gamma_1689 := proj_0 133 c_1687 in
let delta_1690 := proj_1 133 c_1687 in
case gamma_1689 of {
| nil =>
case delta_1690 of {
| nil =>
halt d_1688
| cons =>
let p_1691 := proj_0 149 delta_1690 in
let l_1692 := proj_1 149 delta_1690 in
case p_1691 of {
| Eqv =>
let s_1693 := proj_0 141 p_1691 in
let t_1694 := proj_1 141 p_1691 in
case l_1692 of {
| nil =>
case d_1688 of {
| PureClause =>
let neg_1695 := proj_0 133 d_1688 in
let pos_1696 := proj_1 133 d_1688 in
let y_proj_1697 := proj_3 505 env_1686 in
let env_1698 := con_511(y_proj_1697,s_1693,t_1694) in
let y_wrapper_clo_1699 := con_15(y_wrapper_203,env_1698) in
let y_1701 := app map_known_133<19>(neg_1695,y_wrapper_clo_1699) in
let y_proj_1702 := proj_3 505 env_1686 in
let env_1703 := con_516(y_proj_1702,s_1693,t_1694) in
let y_wrapper_clo_1704 := con_15(y_wrapper_204,env_1703) in
let y_1706 := app map_known_133<19>(pos_1696,y_wrapper_clo_1704) in
let CertiCoq.Benchmarks.lib.vs.var2_proj_1707 := proj_0 505 env_1686 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_1709 := proj_1 505 env_1686 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_1711 := proj_2 505 env_1686 in
let y_1713 := app list_prio_uncurried_uncurried_uncurried_known_104<4>(CertiCoq.Benchmarks.lib.vs.var0_proj_1711,y_1706,CertiCoq.Benchmarks.lib.vs.var1_proj_1709) in
let y_1715 := app list_prio_uncurried_uncurried_uncurried_known_104<4>(y_1713,y_1701,CertiCoq.Benchmarks.lib.vs.var2_proj_1707) in
let y_1716 := con_99() in
let y_1717 := PureClause(y_1701,y_1706,y_1715,y_1716) in
halt y_1717
| PosSpaceClause =>
let neg_1718 := proj_0 134 d_1688 in
let pos_1719 := proj_1 134 d_1688 in
let space_1720 := proj_2 134 d_1688 in
let y_proj_1721 := proj_3 505 env_1686 in
let env_1722 := con_523(y_proj_1721,s_1693,t_1694) in
let y_wrapper_clo_1723 := con_15(y_wrapper_205,env_1722) in
let y_1725 := app map_known_133<19>(neg_1718,y_wrapper_clo_1723) in
let y_proj_1726 := proj_3 505 env_1686 in
let env_1727 := con_528(y_proj_1726,s_1693,t_1694) in
let y_wrapper_clo_1728 := con_15(y_wrapper_206,env_1727) in
let y_1730 := app map_known_133<19>(pos_1719,y_wrapper_clo_1728) in
let y_proj_1731 := proj_3 505 env_1686 in
let env_1732 := con_534(y_proj_1731,s_1693,t_1694) in
let y_wrapper_clo_1733 := con_15(y_wrapper_207,env_1732) in
let y_1735 := app map_known_133<19>(space_1720,y_wrapper_clo_1733) in
let y_1736 := PosSpaceClause(y_1725,y_1730,y_1735) in
halt y_1736
| NegSpaceClause =>
let neg_1737 := proj_0 135 d_1688 in
let space_1738 := proj_1 135 d_1688 in
let pos_1739 := proj_2 135 d_1688 in
let y_proj_1740 := proj_3 505 env_1686 in
let env_1741 := con_538(y_proj_1740,s_1693,t_1694) in
let y_wrapper_clo_1742 := con_15(y_wrapper_208,env_1741) in
let y_1744 := app map_known_133<19>(neg_1737,y_wrapper_clo_1742) in
let y_proj_1745 := proj_3 505 env_1686 in
let env_1746 := con_543(y_proj_1745,s_1693,t_1694) in
let y_wrapper_clo_1747 := con_15(y_wrapper_209,env_1746) in
let y_1749 := app map_known_133<19>(space_1738,y_wrapper_clo_1747) in
let y_proj_1750 := proj_3 505 env_1686 in
let env_1751 := con_549(y_proj_1750,s_1693,t_1694) in
let y_wrapper_clo_1752 := con_15(y_wrapper_210,env_1751) in
let y_1754 := app map_known_133<19>(pos_1739,y_wrapper_clo_1752) in
let y_1755 := NegSpaceClause(y_1744,y_1749,y_1754) in
halt y_1755
}
| cons =>
halt d_1688
}
}
}
| cons =>
halt d_1688
}
| PosSpaceClause =>
halt d_1688
| NegSpaceClause =>
halt d_1688
}
fun y_wrapper_203<3>(env_1756,atm_1757) :=
let y_proj_1758 := proj_0 511 env_1756 in
let s_proj_1759 := proj_1 511 env_1756 in
let t_proj_1760 := proj_2 511 env_1756 in
CertiCoq.Benchmarks.lib.vs.Superposition.rewrite_by_uncurried_uncurried_known_189<104>(atm_1757,t_proj_1760,s_proj_1759,y_proj_1758)
fun y_wrapper_204<3>(env_1762,atm_1763) :=
let y_proj_1764 := proj_0 516 env_1762 in
let s_proj_1765 := proj_1 516 env_1762 in
let t_proj_1766 := proj_2 516 env_1762 in
CertiCoq.Benchmarks.lib.vs.Superposition.rewrite_by_uncurried_uncurried_known_189<104>(atm_1763,t_proj_1766,s_proj_1765,y_proj_1764)
fun y_wrapper_205<3>(env_1768,atm_1769) :=
let y_proj_1770 := proj_0 523 env_1768 in
let s_proj_1771 := proj_1 523 env_1768 in
let t_proj_1772 := proj_2 523 env_1768 in
CertiCoq.Benchmarks.lib.vs.Superposition.rewrite_by_uncurried_uncurried_known_189<104>(atm_1769,t_proj_1772,s_proj_1771,y_proj_1770)
fun y_wrapper_206<3>(env_1774,atm_1775) :=
let y_proj_1776 := proj_0 528 env_1774 in
let s_proj_1777 := proj_1 528 env_1774 in
let t_proj_1778 := proj_2 528 env_1774 in
CertiCoq.Benchmarks.lib.vs.Superposition.rewrite_by_uncurried_uncurried_known_189<104>(atm_1775,t_proj_1778,s_proj_1777,y_proj_1776)
fun y_wrapper_207<3>(env_1780,atm_1781) :=
let y_proj_1782 := proj_0 534 env_1780 in
let s_proj_1783 := proj_1 534 env_1780 in
let t_proj_1784 := proj_2 534 env_1780 in
CertiCoq.Benchmarks.lib.vs.Superposition.rewrite_in_space_uncurried_uncurried_known_198<104>(atm_1781,t_proj_1784,s_proj_1783,y_proj_1782)
fun y_wrapper_208<3>(env_1786,atm_1787) :=
let y_proj_1788 := proj_0 538 env_1786 in
let s_proj_1789 := proj_1 538 env_1786 in
let t_proj_1790 := proj_2 538 env_1786 in
CertiCoq.Benchmarks.lib.vs.Superposition.rewrite_by_uncurried_uncurried_known_189<104>(atm_1787,t_proj_1790,s_proj_1789,y_proj_1788)
fun y_wrapper_209<3>(env_1792,atm_1793) :=
let y_proj_1794 := proj_0 543 env_1792 in
let s_proj_1795 := proj_1 543 env_1792 in
let t_proj_1796 := proj_2 543 env_1792 in
CertiCoq.Benchmarks.lib.vs.Superposition.rewrite_in_space_uncurried_uncurried_known_198<104>(atm_1793,t_proj_1796,s_proj_1795,y_proj_1794)
fun y_wrapper_210<3>(env_1798,atm_1799) :=
let y_proj_1800 := proj_0 549 env_1798 in
let s_proj_1801 := proj_1 549 env_1798 in
let t_proj_1802 := proj_2 549 env_1798 in
CertiCoq.Benchmarks.lib.vs.Superposition.rewrite_by_uncurried_uncurried_known_189<104>(atm_1799,t_proj_1802,s_proj_1801,y_proj_1800)
fun CertiCoq.Benchmarks.lib.vs.isEq_known_211<314>(cc_1805) :=
case cc_1805 of {
| Eq =>
let y_1806 := true() in
halt y_1806
| Lt =>
let y_1807 := false() in
halt y_1807
| Gt =>
let y_1808 := false() in
halt y_1808
}
fun lookC_uncurried_212<4>(env_1809,cs_1810,a_1811) :=
case cs_1810 of {
| nil =>
let fAB_proj_1812 := proj_0 570 env_1809 in
let fAB_code_1813 := proj_0 15 fAB_proj_1812 in
let fAB_env_1814 := proj_1 15 fAB_proj_1812 in
fAB_code_1813<3>(fAB_env_1814,a_1811)
| cons =>
let p_1815 := proj_0 149 cs_1810 in
let cs'_1816 := proj_1 149 cs_1810 in
case p_1815 of {
| pair =>
let a1_1817 := proj_0 147 p_1815 in
let b1_1818 := proj_1 147 p_1815 in
let A_cmp_proj_1819 := proj_1 570 env_1809 in
let A_cmp_code_1820 := proj_0 15 A_cmp_proj_1819 in
let A_cmp_env_1821 := proj_1 15 A_cmp_proj_1819 in
let y_1822 := app A_cmp_code_1820<3>(A_cmp_env_1821,a_1811) in
let y_code_1823 := proj_0 15 y_1822 in
let y_env_1824 := proj_1 15 y_1822 in
let y_1825 := app y_code_1823<3>(y_env_1824,a1_1817) in
let y_1827 := app CertiCoq.Benchmarks.lib.vs.isEq_known_211<314>(y_1825) in
case y_1827 of {
| true =>
halt b1_1818
| false =>
lookC_uncurried_212<4>(env_1809,cs'_1816,a_1811)
}
}
}
fun y_213<3>(env_1828,p_1829) :=
case p_1829 of {
| pair =>
let e1_1830 := proj_0 147 p_1829 in
let e2_1831 := proj_1 147 p_1829 in
let y_1832 := nil() in
let y_1833 := Eqv(e1_1830,e2_1831) in
let y_1834 := nil() in
let y_1835 := cons(y_1833,y_1834) in
let CertiCoq.Benchmarks.lib.vs.var2_proj_1836 := proj_2 573 env_1828 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_1838 := proj_1 573 env_1828 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_1840 := proj_0 573 env_1828 in
let y_1842 := app list_prio_uncurried_uncurried_uncurried_known_104<4>(CertiCoq.Benchmarks.lib.vs.var0_proj_1840,y_1835,CertiCoq.Benchmarks.lib.vs.var1_proj_1838) in
let y_1844 := app list_prio_uncurried_uncurried_uncurried_known_104<4>(y_1842,y_1832,CertiCoq.Benchmarks.lib.vs.var2_proj_1836) in
let y_1845 := con_99() in
let y_1846 := PureClause(y_1832,y_1835,y_1844,y_1845) in
halt y_1846
}
fun cclose_aux_214<19>(env_1847,l_1848) :=
case l_1848 of {
| nil =>
let y_1849 := nil() in
halt y_1849
| cons =>
let c_1850 := proj_0 149 l_1848 in
let l'_1851 := proj_1 149 l_1848 in
case c_1850 of {
| PureClause =>
let gamma_1852 := proj_0 133 c_1850 in
let delta_1853 := proj_1 133 c_1850 in
case gamma_1852 of {
| nil =>
case delta_1853 of {
| nil =>
let y_1854 := nil() in
halt y_1854
| cons =>
let p_1855 := proj_0 149 delta_1853 in
let l0_1856 := proj_1 149 delta_1853 in
case p_1855 of {
| Eqv =>
let s_1857 := proj_0 141 p_1855 in
let t_1858 := proj_1 141 p_1855 in
case l0_1856 of {
| nil =>
let env_1859 := con_578() in
let y_1860 := app cclose_aux_214<19>(env_1847,l'_1851) in
let y_wrapper_clo_1861 := con_15(y_wrapper_215,env_1859) in
let CertiCoq.Benchmarks.lib.vs.expr_cmp_proj_1862 := proj_0 576 env_1847 in
let env_1863 := con_570(y_wrapper_clo_1861,CertiCoq.Benchmarks.lib.vs.expr_cmp_proj_1862) in
let y_1864 := app lookC_uncurried_212<4>(env_1863,y_1860,s_1857) in
let y_wrapper_clo_1865 := con_15(y_wrapper_215,env_1859) in
let CertiCoq.Benchmarks.lib.vs.expr_cmp_proj_1866 := proj_0 576 env_1847 in
let env_1867 := con_570(y_wrapper_clo_1865,CertiCoq.Benchmarks.lib.vs.expr_cmp_proj_1866) in
let y_1868 := app lookC_uncurried_212<4>(env_1867,y_1860,t_1858) in
let y_proj_1870 := proj_1 576 env_1847 in
let y_1871 := app CertiCoq.Benchmarks.lib.vs.expr_cmp_uncurried_known_111<4>(y_1868,y_1864,y_proj_1870) in
let y_1873 := app CertiCoq.Benchmarks.lib.vs.isEq_known_211<314>(y_1871) in
case y_1873 of {
| true =>
halt y_1860
| false =>
let y_wrapper_clo_1874 := con_15(y_wrapper_215,env_1859) in
let CertiCoq.Benchmarks.lib.vs.expr_cmp_proj_1875 := proj_0 576 env_1847 in
let env_1876 := con_570(y_wrapper_clo_1874,CertiCoq.Benchmarks.lib.vs.expr_cmp_proj_1875) in
let y_1877 := app lookC_uncurried_212<4>(env_1876,y_1860,t_1858) in
let y_1878 := pair(s_1857,y_1877) in
let CertiCoq.Benchmarks.lib.vs.expr_cmp_proj_1879 := proj_0 576 env_1847 in
let y_wrapper_clo_1880 := con_15(y_wrapper_215,env_1859) in
let env_1881 := con_570(y_wrapper_clo_1880,CertiCoq.Benchmarks.lib.vs.expr_cmp_proj_1879) in
let y_1882 := app lookC_uncurried_212<4>(env_1881,y_1860,t_1858) in
let y_1883 := pair(t_1858,y_1882) in
let CertiCoq.Benchmarks.lib.vs.expr_cmp_proj_1884 := proj_0 576 env_1847 in
let y_wrapper_clo_1885 := con_15(y_wrapper_215,env_1859) in
let env_1886 := con_570(y_wrapper_clo_1885,CertiCoq.Benchmarks.lib.vs.expr_cmp_proj_1884) in
let y_1887 := app lookC_uncurried_212<4>(env_1886,y_1860,s_1857) in
let CertiCoq.Benchmarks.lib.vs.expr_cmp_proj_1888 := proj_0 576 env_1847 in
let y_wrapper_clo_1889 := con_15(y_wrapper_215,env_1859) in
let env_1890 := con_570(y_wrapper_clo_1889,CertiCoq.Benchmarks.lib.vs.expr_cmp_proj_1888) in
let y_1891 := app lookC_uncurried_212<4>(env_1890,y_1860,t_1858) in
let y_proj_1893 := proj_1 576 env_1847 in
let y_1894 := app rewriteC_uncurried_uncurried_known_216<104>(y_1860,y_1891,y_1887,y_proj_1893) in
let y_1895 := cons(y_1883,y_1894) in
let y_1896 := cons(y_1878,y_1895) in
halt y_1896
}
| cons =>
let y_1897 := nil() in
halt y_1897
}
}
}
| cons =>
let y_1898 := nil() in
halt y_1898
}
| PosSpaceClause =>
let y_1899 := nil() in
halt y_1899
| NegSpaceClause =>
let y_1900 := nil() in
halt y_1900
}
}
fun y_wrapper_215<3>(env_1901,x_1902) :=
halt x_1902
fun rewriteC_uncurried_uncurried_known_216<104>(cs_1904,b2_1905,b1_1906,y_1907) :=
case cs_1904 of {
| nil =>
let y_1908 := nil() in
halt y_1908
| cons =>
let p_1909 := proj_0 149 cs_1904 in
let cs'_1910 := proj_1 149 cs_1904 in
case p_1909 of {
| pair =>
let a1_1911 := proj_0 147 p_1909 in
let b1'_1912 := proj_1 147 p_1909 in
let new_cs_1913 := app rewriteC_uncurried_uncurried_known_216<104>(cs'_1910,b2_1905,b1_1906,y_1907) in
let y_1915 := app CertiCoq.Benchmarks.lib.vs.expr_cmp_uncurried_known_111<4>(b1'_1912,b1_1906,y_1907) in
let y_1917 := app CertiCoq.Benchmarks.lib.vs.isEq_known_211<314>(y_1915) in
case y_1917 of {
| true =>
let y_1918 := pair(a1_1911,b2_1905) in
let y_1919 := cons(y_1918,new_cs_1913) in
halt y_1919
| false =>
let y_1920 := pair(a1_1911,b1'_1912) in
let y_1921 := cons(y_1920,new_cs_1913) in
halt y_1921
}
}
}
fun Coq.PArith.BinPosDef.Pos.pred_known_217<315>(x_1923) :=
case x_1923 of {
| xI =>
let p_1924 := proj_0 144 x_1923 in
let y_1925 := xO(p_1924) in
halt y_1925
| xO =>
let p_1926 := proj_0 145 x_1923 in
pred_double_known_218<316>(p_1926)
| xH =>
let y_1928 := xH() in
halt y_1928
}
fun pred_double_known_218<316>(x_1930) :=
case x_1930 of {
| xI =>
let p_1931 := proj_0 144 x_1930 in
let y_1932 := xO(p_1931) in
let y_1933 := xI(y_1932) in
halt y_1933
| xO =>
let p_1934 := proj_0 145 x_1930 in
let y_1935 := app pred_double_known_218<316>(p_1934) in
let y_1936 := xI(y_1935) in
halt y_1936
| xH =>
let y_1937 := xH() in
halt y_1937
}
fun insert_uncurried_uncurried_uncurried_known_219<4>(l_1939,a_1940,cmp_1941) :=
case l_1939 of {
| nil =>
let y_1943 := nil() in
let y_1944 := cons(a_1940,y_1943) in
halt y_1944
| cons =>
let h_1945 := proj_0 149 l_1939 in
let t_1946 := proj_1 149 l_1939 in
let cmp_code_1947 := proj_0 15 cmp_1941 in
let cmp_env_1948 := proj_1 15 cmp_1941 in
let y_1949 := app cmp_code_1947<3>(cmp_env_1948,a_1940) in
let y_code_1950 := proj_0 15 y_1949 in
let y_env_1951 := proj_1 15 y_1949 in
let y_1952 := app y_code_1950<3>(y_env_1951,h_1945) in
let y_1954 := app f_case_known_220<317>(y_1952) in
case y_1954 of {
| true =>
let y_1955 := cons(a_1940,l_1939) in
halt y_1955
| false =>
let y_1957 := app insert_uncurried_uncurried_uncurried_known_219<4>(t_1946,a_1940,cmp_1941) in
let y_1958 := cons(h_1945,y_1957) in
halt y_1958
}
}
fun f_case_known_220<317>(s_1960) :=
case s_1960 of {
| Eq =>
let y_1961 := true() in
halt y_1961
| Lt =>
let y_1962 := false() in
halt y_1962
| Gt =>
let y_1963 := true() in
halt y_1963
}
fun rsort_uncurried_uncurried_known_221<19>(l_1965,cmp_1966) :=
case l_1965 of {
| nil =>
let y_1968 := nil() in
halt y_1968
| cons =>
let h_1969 := proj_0 149 l_1965 in
let t_1970 := proj_1 149 l_1965 in
let y_1972 := app rsort_uncurried_uncurried_known_221<19>(t_1970,cmp_1966) in
insert_uncurried_uncurried_uncurried_known_219<4>(y_1972,h_1969,cmp_1966)
}
fun y_wrapper_222<3>(env_1975,b_1976) :=
let cmp_proj_1978 := proj_1 615 env_1975 in
let a_proj_1979 := proj_0 615 env_1975 in
CertiCoq.Benchmarks.lib.vs.rev_cmp_uncurried_uncurried_uncurried_known_224<4>(b_1976,a_proj_1979,cmp_proj_1978)
fun y_wrapper_223<3>(env_1981,a_1982) :=
let A_proj_1983 := proj_1 617 env_1981 in
let cmp_proj_1984 := proj_0 617 env_1981 in
let env_1985 := con_615(a_1982,cmp_proj_1984,A_proj_1983) in
let y_wrapper_clo_1986 := con_15(y_wrapper_222,env_1985) in
halt y_wrapper_clo_1986
fun CertiCoq.Benchmarks.lib.vs.rev_cmp_uncurried_uncurried_uncurried_known_224<4>(b_1988,a_1989,cmp_1990) :=
let cmp_code_1992 := proj_0 15 cmp_1990 in
let cmp_env_1993 := proj_1 15 cmp_1990 in
let y_1994 := app cmp_code_1992<3>(cmp_env_1993,a_1989) in
let y_code_1995 := proj_0 15 y_1994 in
let y_env_1996 := proj_1 15 y_1994 in
let y_1997 := app y_code_1995<3>(y_env_1996,b_1988) in
case y_1997 of {
| Eq =>
let y_1998 := Eq() in
halt y_1998
| Lt =>
let y_1999 := Gt() in
halt y_1999
| Gt =>
let y_2000 := Lt() in
halt y_2000
}
fun y_wrapper_225<3>(env_2001,a2_2002) :=
let y_proj_2003 := proj_1 624 env_2001 in
let a1_proj_2004 := proj_0 624 env_2001 in
CertiCoq.Benchmarks.lib.vs.pn_atom_cmp_uncurried_known_226<4>(a2_2002,a1_proj_2004,y_proj_2003)
fun CertiCoq.Benchmarks.lib.vs.pn_atom_cmp_uncurried_known_226<4>(a2_2007,a1_2008,y_2009) :=
case a1_2008 of {
| Equ =>
let e1_2010 := proj_0 126 a1_2008 in
let e2_2011 := proj_1 126 a1_2008 in
case a2_2007 of {
| Equ =>
let e1'_2012 := proj_0 126 a2_2007 in
let e2'_2013 := proj_1 126 a2_2007 in
let y_2014 := Eqv(e1_2010,e2_2011) in
let y_2015 := Eqv(e1'_2012,e2'_2013) in
CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_uncurried_known_114<4>(y_2015,y_2014,y_2009)
| Nequ =>
let e1'_2017 := proj_0 127 a2_2007 in
let e2'_2018 := proj_1 127 a2_2007 in
let y_2020 := app CertiCoq.Benchmarks.lib.vs.expr_eq_uncurried_known_187<4>(e1'_2017,e1_2010,y_2009) in
case y_2020 of {
| true =>
let y_2021 := Lt() in
halt y_2021
| false =>
let y_2022 := Eqv(e1_2010,e2_2011) in
let y_2023 := Eqv(e1'_2017,e2'_2018) in
CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_uncurried_known_114<4>(y_2023,y_2022,y_2009)
}
}
| Nequ =>
let e1_2025 := proj_0 127 a1_2008 in
let e2_2026 := proj_1 127 a1_2008 in
case a2_2007 of {
| Equ =>
let e1'_2027 := proj_0 126 a2_2007 in
let e2'_2028 := proj_1 126 a2_2007 in
let y_2030 := app CertiCoq.Benchmarks.lib.vs.expr_eq_uncurried_known_187<4>(e1'_2027,e1_2025,y_2009) in
case y_2030 of {
| true =>
let y_2031 := Gt() in
halt y_2031
| false =>
let y_2032 := Eqv(e1_2025,e2_2026) in
let y_2033 := Eqv(e1'_2027,e2'_2028) in
CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_uncurried_known_114<4>(y_2033,y_2032,y_2009)
}
| Nequ =>
let e1'_2035 := proj_0 127 a2_2007 in
let e2'_2036 := proj_1 127 a2_2007 in
let y_2037 := Eqv(e1_2025,e2_2026) in
let y_2038 := Eqv(e1'_2035,e2'_2036) in
CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_uncurried_known_114<4>(y_2038,y_2037,y_2009)
}
}
fun CertiCoq.Benchmarks.lib.vs.pn_atom_cmp_wrapper_227<3>(env_2040,a1_2041) :=
let y_proj_2042 := proj_0 632 env_2040 in
let env_2043 := con_624(a1_2041,y_proj_2042) in
let y_wrapper_clo_2044 := con_15(y_wrapper_225,env_2043) in
halt y_wrapper_clo_2044
fun CertiCoq.Benchmarks.lib.vs.pure_atom2pn_atom_uncurried_known_228<19>(a_2046,b_2047) :=
case a_2046 of {
| Eqv =>
let e1_2048 := proj_0 141 a_2046 in
let e2_2049 := proj_1 141 a_2046 in
case b_2047 of {
| true =>
let y_2050 := Equ(e1_2048,e2_2049) in
halt y_2050
| false =>
let y_2051 := Nequ(e1_2048,e2_2049) in
halt y_2051
}
}
fun CertiCoq.Benchmarks.lib.vs.pure_clause2pn_list_229<3>(env_2052,c_2053) :=
case c_2053 of {
| PureClause =>
let gamma_2054 := proj_0 133 c_2053 in
let delta_2055 := proj_1 133 c_2053 in
let y_2056 := false() in
let env_2057 := con_638(y_2056) in
let y_wrapper_clo_2058 := con_15(y_wrapper_230,env_2057) in
let y_2060 := app map_known_133<19>(gamma_2054,y_wrapper_clo_2058) in
let y_2061 := true() in
let env_2062 := con_644(y_2061) in
let y_wrapper_clo_2063 := con_15(y_wrapper_231,env_2062) in
let y_2065 := app map_known_133<19>(delta_2055,y_wrapper_clo_2063) in
let y_2067 := app app_uncurried_known_143<19>(y_2065,y_2060) in
let CertiCoq.Benchmarks.lib.vs.pn_atom_cmp_wrapper_proj_2068 := proj_0 635 env_2052 in
rsort_uncurried_uncurried_known_221<19>(y_2067,CertiCoq.Benchmarks.lib.vs.pn_atom_cmp_wrapper_proj_2068)
| PosSpaceClause =>
let y_2071 := nil() in
halt y_2071
| NegSpaceClause =>
let y_2072 := nil() in
halt y_2072
}
fun y_wrapper_230<3>(env_2073,a_2074) :=
let y_proj_2075 := proj_0 638 env_2073 in
CertiCoq.Benchmarks.lib.vs.pure_atom2pn_atom_uncurried_known_228<19>(a_2074,y_proj_2075)
fun y_wrapper_231<3>(env_2077,a_2078) :=
let y_proj_2079 := proj_0 644 env_2077 in
CertiCoq.Benchmarks.lib.vs.pure_atom2pn_atom_uncurried_known_228<19>(a_2078,y_proj_2079)
fun CertiCoq.Benchmarks.lib.vs.compare_clause2_232<3>(env_2081,cl1_2082) :=
let CertiCoq.Benchmarks.lib.vs.compare_clause2_uncurried_clo_2083 := con_15(CertiCoq.Benchmarks.lib.vs.compare_clause2_uncurried_234,env_2081) in
let env_2084 := con_650(CertiCoq.Benchmarks.lib.vs.compare_clause2_uncurried_clo_2083,cl1_2082) in
let y_wrapper_clo_2085 := con_15(y_wrapper_233,env_2084) in
halt y_wrapper_clo_2085
fun y_wrapper_233<3>(env_2086,cl2_2087) :=
let CertiCoq.Benchmarks.lib.vs.compare_clause2_uncurried_proj_2088 := proj_0 650 env_2086 in
let cl1_proj_2089 := proj_1 650 env_2086 in
let CertiCoq.Benchmarks.lib.vs.compare_clause2_uncurried_code_2090 := proj_0 15 CertiCoq.Benchmarks.lib.vs.compare_clause2_uncurried_proj_2088 in
let CertiCoq.Benchmarks.lib.vs.compare_clause2_uncurried_env_2091 := proj_1 15 CertiCoq.Benchmarks.lib.vs.compare_clause2_uncurried_proj_2088 in
CertiCoq.Benchmarks.lib.vs.compare_clause2_uncurried_code_2090<4>(CertiCoq.Benchmarks.lib.vs.compare_clause2_uncurried_env_2091,cl2_2087,cl1_proj_2089)
fun CertiCoq.Benchmarks.lib.vs.compare_clause2_uncurried_234<4>(env_2092,cl2_2093,cl1_2094) :=
case cl1_2094 of {
| PureClause =>
case cl2_2093 of {
| PureClause =>
let CertiCoq.Benchmarks.lib.vs.pure_clause2pn_list_proj_2095 := proj_1 648 env_2092 in
let CertiCoq.Benchmarks.lib.vs.pure_clause2pn_list_code_2096 := proj_0 15 CertiCoq.Benchmarks.lib.vs.pure_clause2pn_list_proj_2095 in
let CertiCoq.Benchmarks.lib.vs.pure_clause2pn_list_env_2097 := proj_1 15 CertiCoq.Benchmarks.lib.vs.pure_clause2pn_list_proj_2095 in
let y_2098 := app CertiCoq.Benchmarks.lib.vs.pure_clause2pn_list_code_2096<3>(CertiCoq.Benchmarks.lib.vs.pure_clause2pn_list_env_2097,cl1_2094) in
let CertiCoq.Benchmarks.lib.vs.pn_atom_cmp_wrapper_proj_2099 := proj_2 648 env_2092 in
let CertiCoq.Benchmarks.lib.vs.pure_clause2pn_list_proj_2101 := proj_1 648 env_2092 in
let CertiCoq.Benchmarks.lib.vs.pure_clause2pn_list_code_2102 := proj_0 15 CertiCoq.Benchmarks.lib.vs.pure_clause2pn_list_proj_2101 in
let CertiCoq.Benchmarks.lib.vs.pure_clause2pn_list_env_2103 := proj_1 15 CertiCoq.Benchmarks.lib.vs.pure_clause2pn_list_proj_2101 in
let y_2104 := app CertiCoq.Benchmarks.lib.vs.pure_clause2pn_list_code_2102<3>(CertiCoq.Benchmarks.lib.vs.pure_clause2pn_list_env_2103,cl2_2093) in
compare_list_uncurried_uncurried_uncurried_known_109<4>(y_2104,y_2098,CertiCoq.Benchmarks.lib.vs.pn_atom_cmp_wrapper_proj_2099)
| PosSpaceClause =>
let CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_proj_2106 := proj_0 648 env_2092 in
let CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_code_2107 := proj_0 15 CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_proj_2106 in
let CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_env_2108 := proj_1 15 CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_proj_2106 in
CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_code_2107<4>(CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_env_2108,cl2_2093,cl1_2094)
| NegSpaceClause =>
let CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_proj_2109 := proj_0 648 env_2092 in
let CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_code_2110 := proj_0 15 CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_proj_2109 in
let CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_env_2111 := proj_1 15 CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_proj_2109 in
CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_code_2110<4>(CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_env_2111,cl2_2093,cl1_2094)
}
| PosSpaceClause =>
let CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_proj_2112 := proj_0 648 env_2092 in
let CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_code_2113 := proj_0 15 CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_proj_2112 in
let CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_env_2114 := proj_1 15 CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_proj_2112 in
CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_code_2113<4>(CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_env_2114,cl2_2093,cl1_2094)
| NegSpaceClause =>
let CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_proj_2115 := proj_0 648 env_2092 in
let CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_code_2116 := proj_0 15 CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_proj_2115 in
let CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_env_2117 := proj_1 15 CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_proj_2115 in
CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_code_2116<4>(CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_env_2117,cl2_2093,cl1_2094)
}
fun merge_aux_235<19>(env_2118,l2_2119) :=
let l1_proj_2120 := proj_0 655 env_2118 in
case l1_proj_2120 of {
| nil =>
halt l2_2119
| cons =>
let l1_proj_2121 := proj_0 655 env_2118 in
let a1_2122 := proj_0 149 l1_proj_2121 in
let l1_proj_2123 := proj_0 655 env_2118 in
let l1'_2124 := proj_1 149 l1_proj_2123 in
case l2_2119 of {
| nil =>
let l1_proj_2125 := proj_0 655 env_2118 in
halt l1_proj_2125
| cons =>
let a2_2126 := proj_0 149 l2_2119 in
let l2'_2127 := proj_1 149 l2_2119 in
let cmp_proj_2128 := proj_1 655 env_2118 in
let cmp_code_2129 := proj_0 15 cmp_proj_2128 in
let cmp_env_2130 := proj_1 15 cmp_proj_2128 in
let y_2131 := app cmp_code_2129<3>(cmp_env_2130,a1_2122) in
let y_code_2132 := proj_0 15 y_2131 in
let y_env_2133 := proj_1 15 y_2131 in
let y_2134 := app y_code_2132<3>(y_env_2133,a2_2126) in
case y_2134 of {
| Eq =>
let cmp_proj_2135 := proj_1 655 env_2118 in
let env_2136 := con_655(l1'_2124,cmp_proj_2135) in
let y_2137 := app merge_aux_235<19>(env_2136,l2'_2127) in
let y_2138 := cons(a1_2122,y_2137) in
halt y_2138
| Lt =>
let y_2139 := app merge_aux_235<19>(env_2118,l2'_2127) in
let y_2140 := cons(a2_2126,y_2139) in
halt y_2140
| Gt =>
let cmp_proj_2141 := proj_1 655 env_2118 in
let env_2142 := con_655(l1'_2124,cmp_proj_2141) in
let y_2143 := app merge_aux_235<19>(env_2142,l2_2119) in
let y_2144 := cons(a1_2122,y_2143) in
halt y_2144
}
}
}
fun CertiCoq.Benchmarks.lib.vs.pure_atom_gt_uncurried_known_236<4>(b_2146,a_2147,y_2148) :=
let y_2150 := app CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_uncurried_known_114<4>(b_2146,a_2147,y_2148) in
case y_2150 of {
| Eq =>
let y_2151 := false() in
halt y_2151
| Lt =>
let y_2152 := false() in
halt y_2152
| Gt =>
let y_2153 := true() in
halt y_2153
}
fun CertiCoq.Benchmarks.lib.vs.Superposition.pure_atom_gt1_uncurried_known_237<4>(l_2155,a_2156,y_2157) :=
case l_2155 of {
| nil =>
let y_2158 := true() in
halt y_2158
| cons =>
let b_2159 := proj_0 149 l_2155 in
CertiCoq.Benchmarks.lib.vs.pure_atom_gt_uncurried_known_236<4>(b_2159,a_2156,y_2157)
}
fun Coq.Init.Specif.sig_rect_uncurried_uncurried_uncurried_uncurried_known_238<19>(s_2162,f_2163) :=
case s_2162 of {
| exist =>
let x_2167 := proj_0 105 s_2162 in
let f_code_2168 := proj_0 15 f_2163 in
let f_env_2169 := proj_1 15 f_2163 in
let y_2170 := app f_code_2168<3>(f_env_2169,x_2167) in
let y_2171 := con_99() in
let y_code_2172 := proj_0 15 y_2170 in
let y_env_2173 := proj_1 15 y_2170 in
y_code_2172<3>(y_env_2173,y_2171)
}
fun CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_cont_uncurried_uncurried_known_239<104>(acc_2175,g_2176,f_2177,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_2178) :=
let f_code_2179 := proj_0 15 f_2177 in
let f_env_2180 := proj_1 15 f_2177 in
let y_2181 := app f_code_2179<3>(f_env_2180,acc_2175) in
case y_2181 of {
| pair =>
let l_2182 := proj_0 147 y_2181 in
let l0_2183 := proj_1 147 y_2181 in
case l0_2183 of {
| nil =>
halt CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_2178
| cons =>
let x_2184 := proj_0 149 l0_2183 in
let acc_2185 := proj_1 149 l0_2183 in
let g_code_2186 := proj_0 15 g_2176 in
let g_env_2187 := proj_1 15 g_2176 in
let y_2188 := app g_code_2186<3>(g_env_2187,acc_2185) in
case y_2188 of {
| pair =>
let r_2189 := proj_0 147 y_2188 in
let acc_2190 := proj_1 147 y_2188 in
let y_2191 := Black() in
let y_2192 := Node(y_2191,l_2182,x_2184,r_2189) in
let y_2193 := pair(y_2192,acc_2190) in
halt y_2193
}
}
}
fun CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_zero_wrapper_240<3>(env_2194,acc_2195) :=
let y_2196 := Leaf() in
let y_2197 := pair(y_2196,acc_2195) in
halt y_2197
fun CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_known_241<19>(acc_2199,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_2200) :=
case acc_2199 of {
| nil =>
halt CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_2200
| cons =>
let x_2201 := proj_0 149 acc_2199 in
let acc_2202 := proj_1 149 acc_2199 in
let y_2203 := Red() in
let y_2204 := Leaf() in
let y_2205 := Leaf() in
let y_2206 := Node(y_2203,y_2204,x_2201,y_2205) in
let y_2207 := pair(y_2206,acc_2202) in
halt y_2207
}
fun CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_242<3>(env_2208,acc_2209) :=
let CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_2211 := proj_0 682 env_2208 in
CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_known_241<19>(acc_2209,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_2211)
fun CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_known_243<4>(l_2213,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_2214,CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_2215) :=
let y_2218 := true() in
let y_2220 := xH() in
let y_2221 := app plength_aux_uncurried_known_244<19>(y_2220,l_2213) in
let y_2223 := app treeify_aux_uncurried_known_245<104>(y_2221,y_2218,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_2214,CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_2215) in
let y_code_2224 := proj_0 15 y_2223 in
let y_env_2225 := proj_1 15 y_2223 in
let y_2226 := app y_code_2224<3>(y_env_2225,l_2213) in
Coq.Init.Datatypes.fst_uncurried_uncurried_known_170<309>(y_2226)
fun plength_aux_uncurried_known_244<19>(p_2229,l_2230) :=
case l_2230 of {
| nil =>
halt p_2229
| cons =>
let l_2231 := proj_1 149 l_2230 in
let y_2233 := app succ_known_101<302>(p_2229) in
plength_aux_uncurried_known_244<19>(y_2233,l_2231)
}
fun treeify_aux_uncurried_known_245<104>(n_2235,pred_2236,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_2237,CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_2238) :=
case n_2235 of {
| xI =>
let n_2239 := proj_0 144 n_2235 in
let y_2240 := false() in
let y_2241 := app treeify_aux_uncurried_known_245<104>(n_2239,y_2240,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_2237,CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_2238) in
let y_2242 := app treeify_aux_uncurried_known_245<104>(n_2239,pred_2236,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_2237,CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_2238) in
let env_2243 := con_690(y_2241,y_2242,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_2237) in
let y_wrapper_clo_2244 := con_15(y_wrapper_246,env_2243) in
halt y_wrapper_clo_2244
| xO =>
let n_2245 := proj_0 145 n_2235 in
let y_2246 := app treeify_aux_uncurried_known_245<104>(n_2245,pred_2236,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_2237,CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_2238) in
let y_2247 := true() in
let y_2248 := app treeify_aux_uncurried_known_245<104>(n_2245,y_2247,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_2237,CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_2238) in
let env_2249 := con_694(y_2246,y_2248,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_2237) in
let y_wrapper_clo_2250 := con_15(y_wrapper_247,env_2249) in
halt y_wrapper_clo_2250
| xH =>
case pred_2236 of {
| true =>
let CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_zero_wrapperbogus_env_2251 := con_696() in
let CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_zero_wrapper_clo_2252 := con_15(CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_zero_wrapper_240,CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_zero_wrapperbogus_env_2251) in
halt CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_zero_wrapper_clo_2252
| false =>
halt CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_2238
}
}
fun y_wrapper_246<3>(env_2253,acc_2254) :=
let CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_2255 := proj_2 690 env_2253 in
let y_proj_2256 := proj_0 690 env_2253 in
let y_proj_2257 := proj_1 690 env_2253 in
CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_cont_uncurried_uncurried_known_239<104>(acc_2254,y_proj_2257,y_proj_2256,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_2255)
fun y_wrapper_247<3>(env_2259,acc_2260) :=
let CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_2261 := proj_2 694 env_2259 in
let y_proj_2262 := proj_0 694 env_2259 in
let y_proj_2263 := proj_1 694 env_2259 in
CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_cont_uncurried_uncurried_known_239<104>(acc_2260,y_proj_2263,y_proj_2262,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_2261)
fun CertiCoq.Benchmarks.lib.vs.M.filter_uncurried_known_248<104>(s_2266,f_2267,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_2268,CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_2269) :=
let y_2271 := app CertiCoq.Benchmarks.lib.vs.M.this_known_127<304>(s_2266) in
let y_2273 := nil() in
let y_2274 := app filter_aux_uncurried_uncurried_known_249<4>(y_2273,y_2271,f_2267) in
let y_2276 := app CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_known_243<4>(y_2274,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_2268,CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_2269) in
let y_2277 := con_99() in
let y_2278 := Mkt(y_2276,y_2277) in
halt y_2278
fun filter_aux_uncurried_uncurried_known_249<4>(acc_2280,s_2281,f_2282) :=
case s_2281 of {
| Leaf =>
halt acc_2280
| Node =>
let l_2283 := proj_1 121 s_2281 in
let k_2284 := proj_2 121 s_2281 in
let r_2285 := proj_3 121 s_2281 in
let acc_2286 := app filter_aux_uncurried_uncurried_known_249<4>(acc_2280,r_2285,f_2282) in
let f_code_2287 := proj_0 15 f_2282 in
let f_env_2288 := proj_1 15 f_2282 in
let y_2289 := app f_code_2287<3>(f_env_2288,k_2284) in
case y_2289 of {
| true =>
let y_2290 := cons(k_2284,acc_2286) in
filter_aux_uncurried_uncurried_known_249<4>(y_2290,l_2283,f_2282)
| false =>
filter_aux_uncurried_uncurried_known_249<4>(acc_2286,l_2283,f_2282)
}
}
fun cons_uncurried_known_250<19>(e_2292,s_2293) :=
case s_2293 of {
| Leaf =>
halt e_2292
| Node =>
let l_2294 := proj_1 121 s_2293 in
let x_2295 := proj_2 121 s_2293 in
let r_2296 := proj_3 121 s_2293 in
let y_2297 := More(x_2295,r_2296,e_2292) in
cons_uncurried_known_250<19>(y_2297,l_2294)
}
fun CertiCoq.Benchmarks.lib.vs.M.Raw.compare_end_known_251<318>(e2_2299) :=
case e2_2299 of {
| End =>
let y_2300 := Eq() in
halt y_2300
| More =>
let y_2301 := Lt() in
halt y_2301
}
fun CertiCoq.Benchmarks.lib.vs.M.Raw.compare_end_wrapper_252<3>(env_2302,e2_2303) :=
CertiCoq.Benchmarks.lib.vs.M.Raw.compare_end_known_251<318>(e2_2303)
fun CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_253<4>(env_2305,s'_2306,s_2307) :=
let y_2309 := app CertiCoq.Benchmarks.lib.vs.M.this_known_127<304>(s_2307) in
let y_2311 := app CertiCoq.Benchmarks.lib.vs.M.this_known_127<304>(s'_2306) in
let y_2313 := End() in
let y_2315 := app cons_uncurried_known_250<19>(y_2313,y_2311) in
let CertiCoq.Benchmarks.lib.vs.M.Raw.compare_end_wrapperbogus_env_2316 := con_719() in
let CertiCoq.Benchmarks.lib.vs.M.Raw.compare_end_wrapper_clo_2317 := con_15(CertiCoq.Benchmarks.lib.vs.M.Raw.compare_end_wrapper_252,CertiCoq.Benchmarks.lib.vs.M.Raw.compare_end_wrapperbogus_env_2316) in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_2318 := proj_0 711 env_2305 in
compare_cont_uncurried_uncurried_known_254<104>(y_2315,CertiCoq.Benchmarks.lib.vs.M.Raw.compare_end_wrapper_clo_2317,y_2309,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_2318)
fun compare_cont_uncurried_uncurried_known_254<104>(e2_2320,cont_2321,s1_2322,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_2323) :=
case s1_2322 of {
| Leaf =>
let cont_code_2324 := proj_0 15 cont_2321 in
let cont_env_2325 := proj_1 15 cont_2321 in
cont_code_2324<3>(cont_env_2325,e2_2320)
| Node =>
let l1_2326 := proj_1 121 s1_2322 in
let x1_2327 := proj_2 121 s1_2322 in
let r1_2328 := proj_3 121 s1_2322 in
let env_2329 := con_715(cont_2321,x1_2327,r1_2328,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_2323) in
let y_clo_2330 := con_15(y_255,env_2329) in
compare_cont_uncurried_uncurried_known_254<104>(e2_2320,y_clo_2330,l1_2326,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_2323)
}
fun y_255<3>(env_2331,e2_2332) :=
case e2_2332 of {
| End =>
let y_2333 := Gt() in
halt y_2333
| More =>
let x2_2334 := proj_0 104 e2_2332 in
let r2_2335 := proj_1 104 e2_2332 in
let e2_2336 := proj_2 104 e2_2332 in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_2337 := proj_3 715 env_2331 in
let x1_proj_2338 := proj_1 715 env_2331 in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_code_2339 := proj_0 15 CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_2337 in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_env_2340 := proj_1 15 CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_2337 in
let y_2341 := app CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_code_2339<4>(CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_env_2340,x2_2334,x1_proj_2338) in
case y_2341 of {
| Eq =>
let y_2343 := app cons_uncurried_known_250<19>(e2_2336,r2_2335) in
let cont_proj_2345 := proj_0 715 env_2331 in
let r1_proj_2346 := proj_2 715 env_2331 in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_2347 := proj_3 715 env_2331 in
compare_cont_uncurried_uncurried_known_254<104>(y_2343,cont_proj_2345,r1_proj_2346,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_2347)
| Lt =>
let y_2348 := Lt() in
halt y_2348
| Gt =>
let y_2349 := Gt() in
halt y_2349
}
}
fun CertiCoq.Benchmarks.lib.vs.M.Raw.skip_red_known_256<319>(t_2351) :=
case t_2351 of {
| Leaf =>
halt t_2351
| Node =>
let t0_2352 := proj_0 121 t_2351 in
let t'_2353 := proj_1 121 t_2351 in
case t0_2352 of {
| Red =>
halt t'_2353
| Black =>
halt t_2351
}
}
fun CertiCoq.Benchmarks.lib.vs.M.Raw.skip_black_known_257<320>(t_2355) :=
let y_2357 := app CertiCoq.Benchmarks.lib.vs.M.Raw.skip_red_known_256<319>(t_2355) in
case y_2357 of {
| Leaf =>
let y_2358 := Leaf() in
halt y_2358
| Node =>
let t0_2359 := proj_0 121 y_2357 in
let t'_2360 := proj_1 121 y_2357 in
let t1_2361 := proj_2 121 y_2357 in
let t2_2362 := proj_3 121 y_2357 in
case t0_2359 of {
| Red =>
let y_2363 := Red() in
let y_2364 := Node(y_2363,t'_2360,t1_2361,t2_2362) in
halt y_2364
| Black =>
halt t'_2360
}
}
fun rev_append_uncurried_known_258<19>(l'_2366,l_2367) :=
case l_2367 of {
| nil =>
halt l'_2366
| cons =>
let a_2368 := proj_0 149 l_2367 in
let l_2369 := proj_1 149 l_2367 in
let y_2370 := cons(a_2368,l'_2366) in
rev_append_uncurried_known_258<19>(y_2370,l_2369)
}
fun y_wrapper_259<3>(env_2371,l'_2372) :=
let l_proj_2373 := proj_0 727 env_2371 in
rev_append_uncurried_known_258<19>(l'_2372,l_proj_2373)
fun rev_elements_aux_uncurried_known_260<19>(s_2376,acc_2377) :=
case s_2376 of {
| Leaf =>
halt acc_2377
| Node =>
let l_2378 := proj_1 121 s_2376 in
let x_2379 := proj_2 121 s_2376 in
let r_2380 := proj_3 121 s_2376 in
let y_2381 := app rev_elements_aux_uncurried_known_260<19>(l_2378,acc_2377) in
let y_2382 := cons(x_2379,y_2381) in
rev_elements_aux_uncurried_known_260<19>(r_2380,y_2382)
}
fun fold_uncurried_uncurried_uncurried_known_261<4>(base_2384,t_2385,f_2386) :=
case t_2385 of {
| Leaf =>
halt base_2384
| Node =>
let l_2388 := proj_1 121 t_2385 in
let x_2389 := proj_2 121 t_2385 in
let r_2390 := proj_3 121 t_2385 in
let f_code_2392 := proj_0 15 f_2386 in
let f_env_2393 := proj_1 15 f_2386 in
let y_2394 := app f_code_2392<3>(f_env_2393,x_2389) in
let y_2396 := app fold_uncurried_uncurried_uncurried_known_261<4>(base_2384,l_2388,f_2386) in
let y_code_2397 := proj_0 15 y_2394 in
let y_env_2398 := proj_1 15 y_2394 in
let y_2399 := app y_code_2397<3>(y_env_2398,y_2396) in
fold_uncurried_uncurried_uncurried_known_261<4>(y_2399,r_2390,f_2386)
}
fun CertiCoq.Benchmarks.lib.vs.M.union_uncurried_262<4>(env_2400,s'_2401,s_2402) :=
let y_2404 := app CertiCoq.Benchmarks.lib.vs.M.this_known_127<304>(s_2402) in
let y_2406 := app CertiCoq.Benchmarks.lib.vs.M.this_known_127<304>(s'_2401) in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_2407 := proj_0 737 env_2400 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_2408 := proj_1 737 env_2400 in
let y_proj_2409 := proj_2 737 env_2400 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.add_wrapper_proj_2410 := proj_3 737 env_2400 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_2411 := proj_4 737 env_2400 in
let env_2412 := con_740(CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_2407,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_2408,y_proj_2409,y_2404,y_2406,CertiCoq.Benchmarks.lib.vs.M.Raw.add_wrapper_proj_2410,CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_2411) in
let y_2414 := app compare_height_uncurried_uncurried_uncurried_known_269<104>(y_2406,y_2406,y_2404,y_2404) in
let y_2415 := app f_case_263<19>(env_2412,y_2414) in
let y_2416 := con_99() in
let y_2417 := Mkt(y_2415,y_2416) in
halt y_2417
fun f_case_263<19>(env_2418,s_2419) :=
case s_2419 of {
| Eq =>
let y_proj_2420 := proj_3 740 env_2418 in
let y_proj_2421 := proj_2 740 env_2418 in
let y_2423 := app rev_elements_aux_uncurried_known_260<19>(y_proj_2420,y_proj_2421) in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_2425 := proj_0 740 env_2418 in
let y_2426 := app union_list_known_264<19>(y_2423,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_2425) in
let y_proj_2427 := proj_4 740 env_2418 in
let y_proj_2428 := proj_2 740 env_2418 in
let y_2430 := app rev_elements_aux_uncurried_known_260<19>(y_proj_2427,y_proj_2428) in
let y_code_2431 := proj_0 15 y_2426 in
let y_env_2432 := proj_1 15 y_2426 in
let y_2433 := app y_code_2431<3>(y_env_2432,y_2430) in
let y_2434 := nil() in
let y_code_2435 := proj_0 15 y_2433 in
let y_env_2436 := proj_1 15 y_2433 in
let y_2437 := app y_code_2435<3>(y_env_2436,y_2434) in
let CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_2439 := proj_1 740 env_2418 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_2440 := proj_6 740 env_2418 in
CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_known_243<4>(y_2437,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_2439,CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_2440)
| Lt =>
let y_proj_2441 := proj_3 740 env_2418 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.add_wrapper_proj_2442 := proj_5 740 env_2418 in
let y_proj_2444 := proj_4 740 env_2418 in
fold_uncurried_uncurried_uncurried_known_261<4>(y_proj_2444,y_proj_2441,CertiCoq.Benchmarks.lib.vs.M.Raw.add_wrapper_proj_2442)
| Gt =>
let y_proj_2446 := proj_4 740 env_2418 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.add_wrapper_proj_2447 := proj_5 740 env_2418 in
let y_proj_2449 := proj_3 740 env_2418 in
fold_uncurried_uncurried_uncurried_known_261<4>(y_proj_2449,y_proj_2446,CertiCoq.Benchmarks.lib.vs.M.Raw.add_wrapper_proj_2447)
}
fun union_list_known_264<19>(l1_2452,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_2453) :=
case l1_2452 of {
| nil =>
let y_2454 := con_99() in
let env_2455 := con_745(y_2454) in
let y_wrapper_clo_2456 := con_15(y_wrapper_265,env_2455) in
halt y_wrapper_clo_2456
| cons =>
let x_2457 := proj_0 149 l1_2452 in
let l1'_2458 := proj_1 149 l1_2452 in
let env_2459 := con_755(l1_2452,x_2457,l1'_2458,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_2453) in
let y_wrapper_clo_2460 := con_15(y_wrapper_268,env_2459) in
halt y_wrapper_clo_2460
}
fun y_wrapper_265<3>(env_2461,l_2462) :=
let env_2463 := con_727(l_2462) in
let y_wrapper_clo_2464 := con_15(y_wrapper_259,env_2463) in
halt y_wrapper_clo_2464
fun union_l1_uncurried_266<4>(env_2465,acc_2466,l2_2467) :=
case l2_2467 of {
| nil =>
let l1_proj_2468 := proj_2 748 env_2465 in
rev_append_uncurried_known_258<19>(acc_2466,l1_proj_2468)
| cons =>
let y_2470 := proj_0 149 l2_2467 in
let l2'_2471 := proj_1 149 l2_2467 in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_2472 := proj_3 748 env_2465 in
let x_proj_2473 := proj_1 748 env_2465 in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_code_2474 := proj_0 15 CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_2472 in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_env_2475 := proj_1 15 CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_2472 in
let y_2476 := app CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_code_2474<4>(CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_env_2475,y_2470,x_proj_2473) in
case y_2476 of {
| Eq =>
let l1'_proj_2478 := proj_0 748 env_2465 in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_2479 := proj_3 748 env_2465 in
let y_2480 := app union_list_known_264<19>(l1'_proj_2478,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_2479) in
let y_code_2481 := proj_0 15 y_2480 in
let y_env_2482 := proj_1 15 y_2480 in
let y_2483 := app y_code_2481<3>(y_env_2482,l2'_2471) in
let x_proj_2484 := proj_1 748 env_2465 in
let y_2485 := cons(x_proj_2484,acc_2466) in
let y_code_2486 := proj_0 15 y_2483 in
let y_env_2487 := proj_1 15 y_2483 in
y_code_2486<3>(y_env_2487,y_2485)
| Lt =>
let y_2488 := cons(y_2470,acc_2466) in
union_l1_uncurried_266<4>(env_2465,y_2488,l2'_2471)
| Gt =>
let l1'_proj_2490 := proj_0 748 env_2465 in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_2491 := proj_3 748 env_2465 in
let y_2492 := app union_list_known_264<19>(l1'_proj_2490,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_2491) in
let y_code_2493 := proj_0 15 y_2492 in
let y_env_2494 := proj_1 15 y_2492 in
let y_2495 := app y_code_2493<3>(y_env_2494,l2_2467) in
let x_proj_2496 := proj_1 748 env_2465 in
let y_2497 := cons(x_proj_2496,acc_2466) in
let y_code_2498 := proj_0 15 y_2495 in
let y_env_2499 := proj_1 15 y_2495 in
y_code_2498<3>(y_env_2499,y_2497)
}
}
fun y_wrapper_267<3>(env_2500,acc_2501) :=
let l2_proj_2502 := proj_0 753 env_2500 in
let union_l1_uncurried_proj_2503 := proj_1 753 env_2500 in
let union_l1_uncurried_code_2504 := proj_0 15 union_l1_uncurried_proj_2503 in
let union_l1_uncurried_env_2505 := proj_1 15 union_l1_uncurried_proj_2503 in
union_l1_uncurried_code_2504<4>(union_l1_uncurried_env_2505,acc_2501,l2_proj_2502)
fun y_wrapper_268<3>(env_2506,l2_2507) :=
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_2508 := proj_3 755 env_2506 in
let l1_proj_2509 := proj_0 755 env_2506 in
let x_proj_2510 := proj_1 755 env_2506 in
let l1'_proj_2511 := proj_2 755 env_2506 in
let env_2512 := con_748(l1'_proj_2511,x_proj_2510,l1_proj_2509,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_2508) in
let union_l1_uncurried_clo_2513 := con_15(union_l1_uncurried_266,env_2512) in
let env_2514 := con_753(l2_2507,union_l1_uncurried_clo_2513) in
let y_wrapper_clo_2515 := con_15(y_wrapper_267,env_2514) in
halt y_wrapper_clo_2515
fun compare_height_uncurried_uncurried_uncurried_known_269<104>(s2x_2517,s2_2518,s1_2519,s1x_2520) :=
let y_2522 := app CertiCoq.Benchmarks.lib.vs.M.Raw.skip_red_known_256<319>(s1x_2520) in
case y_2522 of {
| Leaf =>
let y_2524 := app CertiCoq.Benchmarks.lib.vs.M.Raw.skip_red_known_256<319>(s1_2519) in
case y_2524 of {
| Leaf =>
let y_2526 := app CertiCoq.Benchmarks.lib.vs.M.Raw.skip_red_known_256<319>(s2x_2517) in
case y_2526 of {
| Leaf =>
let y_2527 := Eq() in
halt y_2527
| Node =>
let y_2528 := Lt() in
halt y_2528
}
| Node =>
let s1'_2529 := proj_1 121 y_2524 in
let y_2531 := app CertiCoq.Benchmarks.lib.vs.M.Raw.skip_red_known_256<319>(s2_2518) in
case y_2531 of {
| Leaf =>
let y_2532 := Eq() in
halt y_2532
| Node =>
let s2'_2533 := proj_1 121 y_2531 in
let y_2535 := app CertiCoq.Benchmarks.lib.vs.M.Raw.skip_red_known_256<319>(s2x_2517) in
case y_2535 of {
| Leaf =>
let y_2536 := Eq() in
halt y_2536
| Node =>
let s2x'_2537 := proj_1 121 y_2535 in
let y_2538 := Leaf() in
let y_2540 := app CertiCoq.Benchmarks.lib.vs.M.Raw.skip_black_known_257<320>(s2x'_2537) in
compare_height_uncurried_uncurried_uncurried_known_269<104>(y_2540,s2'_2533,s1'_2529,y_2538)
}
}
}
| Node =>
let s1x'_2541 := proj_1 121 y_2522 in
let y_2543 := app CertiCoq.Benchmarks.lib.vs.M.Raw.skip_red_known_256<319>(s1_2519) in
case y_2543 of {
| Leaf =>
let y_2545 := app CertiCoq.Benchmarks.lib.vs.M.Raw.skip_red_known_256<319>(s2_2518) in
case y_2545 of {
| Leaf =>
let y_2547 := app CertiCoq.Benchmarks.lib.vs.M.Raw.skip_red_known_256<319>(s2x_2517) in
case y_2547 of {
| Leaf =>
let y_2548 := Gt() in
halt y_2548
| Node =>
let y_2549 := Lt() in
halt y_2549
}
| Node =>
let y_2551 := app CertiCoq.Benchmarks.lib.vs.M.Raw.skip_red_known_256<319>(s2x_2517) in
case y_2551 of {
| Leaf =>
let y_2552 := Eq() in
halt y_2552
| Node =>
let y_2553 := Lt() in
halt y_2553
}
}
| Node =>
let s1'_2554 := proj_1 121 y_2543 in
let y_2556 := app CertiCoq.Benchmarks.lib.vs.M.Raw.skip_red_known_256<319>(s2_2518) in
case y_2556 of {
| Leaf =>
let y_2557 := Gt() in
halt y_2557
| Node =>
let s2'_2558 := proj_1 121 y_2556 in
let y_2560 := app CertiCoq.Benchmarks.lib.vs.M.Raw.skip_red_known_256<319>(s2x_2517) in
case y_2560 of {
| Leaf =>
let y_2562 := app CertiCoq.Benchmarks.lib.vs.M.Raw.skip_black_known_257<320>(s1x'_2541) in
let y_2563 := Leaf() in
compare_height_uncurried_uncurried_uncurried_known_269<104>(y_2563,s2'_2558,s1'_2554,y_2562)
| Node =>
let s2x'_2564 := proj_1 121 y_2560 in
let y_2566 := app CertiCoq.Benchmarks.lib.vs.M.Raw.skip_black_known_257<320>(s1x'_2541) in
let y_2568 := app CertiCoq.Benchmarks.lib.vs.M.Raw.skip_black_known_257<320>(s2x'_2564) in
compare_height_uncurried_uncurried_uncurried_known_269<104>(y_2568,s2'_2558,s1'_2554,y_2566)
}
}
}
}
fun sublist_uncurried_270<4>(env_2569,l2_2570,l1_2571) :=
case l1_2571 of {
| nil =>
let y_2572 := true() in
halt y_2572
| cons =>
let a_2573 := proj_0 149 l1_2571 in
let l1'_2574 := proj_1 149 l1_2571 in
case l2_2570 of {
| nil =>
let y_2575 := false() in
halt y_2575
| cons =>
let b_2576 := proj_0 149 l2_2570 in
let l2'_2577 := proj_1 149 l2_2570 in
let cmp_proj_2578 := proj_0 778 env_2569 in
let cmp_code_2579 := proj_0 15 cmp_proj_2578 in
let cmp_env_2580 := proj_1 15 cmp_proj_2578 in
let y_2581 := app cmp_code_2579<3>(cmp_env_2580,a_2573) in
let y_code_2582 := proj_0 15 y_2581 in
let y_env_2583 := proj_1 15 y_2581 in
let y_2584 := app y_code_2582<3>(y_env_2583,b_2576) in
let y_2586 := app CertiCoq.Benchmarks.lib.vs.isEq_known_211<314>(y_2584) in
case y_2586 of {
| true =>
let cmp_proj_2587 := proj_0 778 env_2569 in
let env_2588 := con_780(cmp_proj_2587) in
sublistg_uncurried_271<4>(env_2588,l2'_2577,l1'_2574)
| false =>
sublist_uncurried_270<4>(env_2569,l2'_2577,l1_2571)
}
}
}
fun sublistg_uncurried_271<4>(env_2589,l2_2590,l1_2591) :=
case l1_2591 of {
| nil =>
let y_2592 := true() in
halt y_2592
| cons =>
let a_2593 := proj_0 149 l1_2591 in
let l1'_2594 := proj_1 149 l1_2591 in
case l2_2590 of {
| nil =>
let y_2595 := false() in
halt y_2595
| cons =>
let b_2596 := proj_0 149 l2_2590 in
let l2'_2597 := proj_1 149 l2_2590 in
let cmp_proj_2598 := proj_0 780 env_2589 in
let cmp_code_2599 := proj_0 15 cmp_proj_2598 in
let cmp_env_2600 := proj_1 15 cmp_proj_2598 in
let y_2601 := app cmp_code_2599<3>(cmp_env_2600,a_2593) in
let y_code_2602 := proj_0 15 y_2601 in
let y_env_2603 := proj_1 15 y_2601 in
let y_2604 := app y_code_2602<3>(y_env_2603,b_2596) in
let y_2606 := app CertiCoq.Benchmarks.lib.vs.isEq_known_211<314>(y_2604) in
let y_2607 := app sublistg_uncurried_271<4>(env_2589,l2'_2597,l1'_2594) in
Coq.Init.Datatypes.andb_uncurried_known_173<19>(y_2607,y_2606)
}
}
fun CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_272<4>(env_2609,t_2610,s_2611) :=
let CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_2612 := proj_0 783 env_2609 in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_2613 := proj_2 783 env_2609 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_2614 := proj_3 783 env_2609 in
let env_2615 := con_798(CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_2612,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_2613,CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_2614) in
let y_2617 := app CertiCoq.Benchmarks.lib.vs.M.this_known_127<304>(s_2611) in
let y_wrapper_clo_2618 := con_15(y_wrapper_276,env_2615) in
let y_2621 := app fold_uncurried_uncurried_uncurried_known_261<4>(t_2610,y_2617,y_wrapper_clo_2618) in
let CertiCoq.Benchmarks.lib.vs.M.union_uncurried_proj_2622 := proj_1 783 env_2609 in
let CertiCoq.Benchmarks.lib.vs.M.union_uncurried_code_2623 := proj_0 15 CertiCoq.Benchmarks.lib.vs.M.union_uncurried_proj_2622 in
let CertiCoq.Benchmarks.lib.vs.M.union_uncurried_env_2624 := proj_1 15 CertiCoq.Benchmarks.lib.vs.M.union_uncurried_proj_2622 in
CertiCoq.Benchmarks.lib.vs.M.union_uncurried_code_2623<4>(CertiCoq.Benchmarks.lib.vs.M.union_uncurried_env_2624,y_2621,s_2611)
fun y_wrapper_273<3>(env_2625,t0_2626) :=
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_proj_2627 := proj_3 787 env_2625 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_2628 := proj_2 787 env_2625 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_proj_2629 := proj_1 787 env_2625 in
let c_proj_2630 := proj_0 787 env_2625 in
let env_2631 := con_795(c_proj_2630,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_proj_2627) in
let y_wrapper_clo_2633 := con_15(y_wrapper_275,env_2631) in
CertiCoq.Benchmarks.lib.vs.M.filter_uncurried_known_248<104>(t0_2626,y_wrapper_clo_2633,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_2628,CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_proj_2629)
fun f_case_known_274<4>(s_2635,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_2636,d_2637) :=
case s_2635 of {
| PureClause =>
let gamma_2638 := proj_0 133 s_2635 in
let delta_2639 := proj_1 133 s_2635 in
case d_2637 of {
| PureClause =>
let gamma'_2640 := proj_0 133 d_2637 in
let delta'_2641 := proj_1 133 d_2637 in
let env_2642 := con_778(CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_2636) in
let y_2643 := app sublist_uncurried_270<4>(env_2642,gamma'_2640,gamma_2638) in
let env_2644 := con_778(CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_2636) in
let y_2645 := app sublist_uncurried_270<4>(env_2644,delta'_2641,delta_2639) in
Coq.Init.Datatypes.andb_uncurried_known_173<19>(y_2645,y_2643)
| PosSpaceClause =>
let y_2647 := false() in
halt y_2647
| NegSpaceClause =>
let y_2648 := false() in
halt y_2648
}
| PosSpaceClause =>
let y_2649 := false() in
halt y_2649
| NegSpaceClause =>
let y_2650 := false() in
halt y_2650
}
fun y_wrapper_275<3>(env_2651,d_2652) :=
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_proj_2653 := proj_1 795 env_2651 in
let c_proj_2654 := proj_0 795 env_2651 in
let y_2656 := app f_case_known_274<4>(c_proj_2654,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_proj_2653,d_2652) in
Coq.Init.Datatypes.negb_known_172<311>(y_2656)
fun y_wrapper_276<3>(env_2658,c_2659) :=
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_2660 := proj_1 798 env_2658 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_2661 := proj_0 798 env_2658 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_2662 := proj_2 798 env_2658 in
let env_2663 := con_787(c_2659,CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_2662,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_2661,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_2660) in
let y_wrapper_clo_2664 := con_15(y_wrapper_273,env_2663) in
halt y_wrapper_clo_2664
fun next_in_dom_uncurried_known_277<19>(sc_2666,x_2667) :=
case sc_2666 of {
| nil =>
let y_2668 := false() in
halt y_2668
| cons =>
let s_2669 := proj_0 149 sc_2666 in
let sc'_2670 := proj_1 149 sc_2666 in
case s_2669 of {
| Next =>
let e_2671 := proj_0 136 s_2669 in
case e_2671 of {
| Nil =>
next_in_dom_uncurried_known_277<19>(sc'_2670,x_2667)
| Var =>
let x'_2672 := proj_0 143 e_2671 in
let y_2674 := app F_known_158<308>(x_2667) in
let y_code_2675 := proj_0 15 y_2674 in
let y_env_2676 := proj_1 15 y_2674 in
let y_2677 := app y_code_2675<3>(y_env_2676,x'_2672) in
case y_2677 of {
| left =>
let y_2678 := true() in
halt y_2678
| right =>
next_in_dom_uncurried_known_277<19>(sc'_2670,x_2667)
}
}
| Lseg =>
next_in_dom_uncurried_known_277<19>(sc'_2670,x_2667)
}
}
fun lseg_in_dom_atoms_uncurried_278<4>(env_2679,sc_2680,x_2681) :=
case sc_2680 of {
| nil =>
let y_2682 := nil() in
halt y_2682
| cons =>
let s_2683 := proj_0 149 sc_2680 in
let sc'_2684 := proj_1 149 sc_2680 in
case s_2683 of {
| Next =>
lseg_in_dom_atoms_uncurried_278<4>(env_2679,sc'_2684,x_2681)
| Lseg =>
let x0_2685 := proj_0 137 s_2683 in
let y0_2686 := proj_1 137 s_2683 in
case x0_2685 of {
| Nil =>
lseg_in_dom_atoms_uncurried_278<4>(env_2679,sc'_2684,x_2681)
| Var =>
let x'_2687 := proj_0 143 x0_2685 in
let y_2689 := app F_known_158<308>(x_2681) in
let y_code_2690 := proj_0 15 y_2689 in
let y_env_2691 := proj_1 15 y_2689 in
let y_2692 := app y_code_2690<3>(y_env_2691,x'_2687) in
case y_2692 of {
| left =>
let y_2693 := Eqv(x0_2685,y0_2686) in
let y_proj_2695 := proj_0 806 env_2679 in
let y_2696 := app CertiCoq.Benchmarks.lib.vs.order_eqv_pure_atom_known_137<19>(y_2693,y_proj_2695) in
let y_2697 := app lseg_in_dom_atoms_uncurried_278<4>(env_2679,sc'_2684,x_2681) in
let y_2698 := cons(y_2696,y_2697) in
halt y_2698
| right =>
lseg_in_dom_atoms_uncurried_278<4>(env_2679,sc'_2684,x_2681)
}
}
}
}
fun CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_279<3>(env_2699,sc_2700) :=
case sc_2700 of {
| PureClause =>
let CertiCoq.Benchmarks.lib.vs.M.empty_proj_2701 := proj_5 809 env_2699 in
halt CertiCoq.Benchmarks.lib.vs.M.empty_proj_2701
| PosSpaceClause =>
let gamma_2702 := proj_0 134 sc_2700 in
let delta_2703 := proj_1 134 sc_2700 in
let sigma_2704 := proj_2 134 sc_2700 in
let y_2705 := con_99() in
let CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_2706 := proj_7 809 env_2699 in
let env_2707 := con_815(y_2705,CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_2706) in
let y_wrapper_clo_2708 := con_15(y_wrapper_281,env_2707) in
let sigma'_2711 := app rsort_uncurried_uncurried_known_221<19>(sigma_2704,y_wrapper_clo_2708) in
let CertiCoq.Benchmarks.lib.vs.var2_proj_2712 := proj_0 809 env_2699 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_2713 := proj_1 809 env_2699 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_2714 := proj_2 809 env_2699 in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_2715 := proj_6 809 env_2699 in
let CertiCoq.Benchmarks.lib.vs.order_eqv_pure_atom_wrapper_proj_2716 := proj_8 809 env_2699 in
let env_2717 := con_818(CertiCoq.Benchmarks.lib.vs.var2_proj_2712,CertiCoq.Benchmarks.lib.vs.var1_proj_2713,CertiCoq.Benchmarks.lib.vs.var0_proj_2714,gamma_2702,delta_2703,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_2715,CertiCoq.Benchmarks.lib.vs.order_eqv_pure_atom_wrapper_proj_2716) in
let y_2719 := app do_well1_2_known_283<321>(sigma'_2711) in
let y_2721 := app do_well3_known_284<322>(sigma'_2711) in
let y_proj_2722 := proj_3 809 env_2699 in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_2723 := proj_6 809 env_2699 in
let CertiCoq.Benchmarks.lib.vs.order_eqv_pure_atom_wrapper_proj_2724 := proj_8 809 env_2699 in
let env_2725 := con_829(y_proj_2722,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_2723,CertiCoq.Benchmarks.lib.vs.order_eqv_pure_atom_wrapper_proj_2724) in
let y_2726 := app do_well4_5_285<19>(env_2725,sigma'_2711) in
let y_2728 := app app_uncurried_known_143<19>(y_2726,y_2721) in
let y_2730 := app app_uncurried_known_143<19>(y_2728,y_2719) in
let y_clo_2731 := con_15(y_282,env_2717) in
let y_2733 := app map_known_133<19>(y_2730,y_clo_2731) in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_2734 := proj_4 809 env_2699 in
let CertiCoq.Benchmarks.lib.vs.M.empty_proj_2735 := proj_5 809 env_2699 in
let env_2736 := con_261(CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_2734) in
let y_wrapper_clo_2737 := con_15(y_wrapper_129,env_2736) in
let env_2738 := con_186(y_wrapper_clo_2737) in
fold_left_uncurried_106<4>(env_2738,CertiCoq.Benchmarks.lib.vs.M.empty_proj_2735,y_2733)
| NegSpaceClause =>
let CertiCoq.Benchmarks.lib.vs.M.empty_proj_2739 := proj_5 809 env_2699 in
halt CertiCoq.Benchmarks.lib.vs.M.empty_proj_2739
}
fun y_wrapper_280<3>(env_2740,b_2741) :=
let CertiCoq.Benchmarks.lib.vs.compare_space_atom_proj_2742 := proj_2 813 env_2740 in
let a_proj_2744 := proj_0 813 env_2740 in
CertiCoq.Benchmarks.lib.vs.rev_cmp_uncurried_uncurried_uncurried_known_224<4>(b_2741,a_proj_2744,CertiCoq.Benchmarks.lib.vs.compare_space_atom_proj_2742)
fun y_wrapper_281<3>(env_2746,a_2747) :=
let CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_2748 := proj_1 815 env_2746 in
let y_proj_2749 := proj_0 815 env_2746 in
let env_2750 := con_813(a_2747,y_proj_2749,CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_2748) in
let y_wrapper_clo_2751 := con_15(y_wrapper_280,env_2750) in
halt y_wrapper_clo_2751
fun y_282<3>(env_2752,ats_2753) :=
let delta_proj_2754 := proj_4 818 env_2752 in
let y_2756 := app app_uncurried_known_143<19>(delta_proj_2754,ats_2753) in
let CertiCoq.Benchmarks.lib.vs.order_eqv_pure_atom_wrapper_proj_2757 := proj_6 818 env_2752 in
let y_2759 := app map_known_133<19>(y_2756,CertiCoq.Benchmarks.lib.vs.order_eqv_pure_atom_wrapper_proj_2757) in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_2760 := proj_5 818 env_2752 in
let y_2763 := app rsort_uniq_uncurried_uncurried_known_136<19>(y_2759,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_2760) in
let gamma_proj_2764 := proj_3 818 env_2752 in
let CertiCoq.Benchmarks.lib.vs.var2_proj_2765 := proj_0 818 env_2752 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_2767 := proj_1 818 env_2752 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_2769 := proj_2 818 env_2752 in
let y_2771 := app list_prio_uncurried_uncurried_uncurried_known_104<4>(CertiCoq.Benchmarks.lib.vs.var0_proj_2769,y_2763,CertiCoq.Benchmarks.lib.vs.var1_proj_2767) in
let y_2773 := app list_prio_uncurried_uncurried_uncurried_known_104<4>(y_2771,gamma_proj_2764,CertiCoq.Benchmarks.lib.vs.var2_proj_2765) in
let y_2774 := con_99() in
let gamma_proj_2775 := proj_3 818 env_2752 in
let y_2776 := PureClause(gamma_proj_2775,y_2763,y_2773,y_2774) in
halt y_2776
fun do_well1_2_known_283<321>(sc_2778) :=
case sc_2778 of {
| nil =>
let y_2779 := nil() in
halt y_2779
| cons =>
let s_2780 := proj_0 149 sc_2778 in
let sc'_2781 := proj_1 149 sc_2778 in
case s_2780 of {
| Next =>
let e_2782 := proj_0 136 s_2780 in
case e_2782 of {
| Nil =>
let y_2783 := nil() in
let y_2784 := app do_well1_2_known_283<321>(sc'_2781) in
let y_2785 := cons(y_2783,y_2784) in
halt y_2785
| Var =>
do_well1_2_known_283<321>(sc'_2781)
}
| Lseg =>
let e_2786 := proj_0 137 s_2780 in
let y_2787 := proj_1 137 s_2780 in
case e_2786 of {
| Nil =>
let y_2788 := Nil() in
let y_2789 := Eqv(y_2787,y_2788) in
let y_2790 := nil() in
let y_2791 := cons(y_2789,y_2790) in
let y_2792 := app do_well1_2_known_283<321>(sc'_2781) in
let y_2793 := cons(y_2791,y_2792) in
halt y_2793
| Var =>
do_well1_2_known_283<321>(sc'_2781)
}
}
}
fun do_well3_known_284<322>(sc_2795) :=
case sc_2795 of {
| nil =>
let y_2796 := nil() in
halt y_2796
| cons =>
let s_2797 := proj_0 149 sc_2795 in
let sc'_2798 := proj_1 149 sc_2795 in
case s_2797 of {
| Next =>
let e_2799 := proj_0 136 s_2797 in
case e_2799 of {
| Nil =>
do_well3_known_284<322>(sc'_2798)
| Var =>
let x_2800 := proj_0 143 e_2799 in
let y_2802 := app next_in_dom_uncurried_known_277<19>(sc'_2798,x_2800) in
case y_2802 of {
| true =>
let y_2803 := nil() in
let y_2804 := app do_well3_known_284<322>(sc'_2798) in
let y_2805 := cons(y_2803,y_2804) in
halt y_2805
| false =>
do_well3_known_284<322>(sc'_2798)
}
}
| Lseg =>
do_well3_known_284<322>(sc'_2798)
}
}
fun do_well4_5_285<19>(env_2806,sc_2807) :=
case sc_2807 of {
| nil =>
let y_2808 := nil() in
halt y_2808
| cons =>
let a_2809 := proj_0 149 sc_2807 in
let sc'_2810 := proj_1 149 sc_2807 in
case a_2809 of {
| Next =>
let e_2811 := proj_0 136 a_2809 in
case e_2811 of {
| Nil =>
do_well4_5_285<19>(env_2806,sc'_2810)
| Var =>
let x'_2812 := proj_0 143 e_2811 in
let env_2813 := con_832() in
let y_wrapper_clo_2814 := con_15(y_wrapper_286,env_2813) in
let y_proj_2815 := proj_0 829 env_2806 in
let env_2816 := con_806(y_proj_2815) in
let y_2817 := app lseg_in_dom_atoms_uncurried_278<4>(env_2816,sc'_2810,x'_2812) in
let atms_2819 := app map_known_133<19>(y_2817,y_wrapper_clo_2814) in
let y_2820 := app do_well4_5_285<19>(env_2806,sc'_2810) in
app_uncurried_known_143<19>(y_2820,atms_2819)
}
| Lseg =>
let x0_2822 := proj_0 137 a_2809 in
let y_2823 := proj_1 137 a_2809 in
case x0_2822 of {
| Nil =>
do_well4_5_285<19>(env_2806,sc'_2810)
| Var =>
let x'_2824 := proj_0 143 x0_2822 in
let y_proj_2825 := proj_0 829 env_2806 in
let env_2826 := con_806(y_proj_2825) in
let l0_2827 := app lseg_in_dom_atoms_uncurried_278<4>(env_2826,sc'_2810,x'_2824) in
case l0_2827 of {
| nil =>
do_well4_5_285<19>(env_2806,sc'_2810)
| cons =>
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_2828 := proj_1 829 env_2806 in
let CertiCoq.Benchmarks.lib.vs.order_eqv_pure_atom_wrapper_proj_2829 := proj_2 829 env_2806 in
let env_2830 := con_841(x0_2822,y_2823,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_2828,CertiCoq.Benchmarks.lib.vs.order_eqv_pure_atom_wrapper_proj_2829) in
let y_wrapper_clo_2831 := con_15(y_wrapper_287,env_2830) in
let atms_2833 := app map_known_133<19>(l0_2827,y_wrapper_clo_2831) in
let y_2834 := app do_well4_5_285<19>(env_2806,sc'_2810) in
app_uncurried_known_143<19>(y_2834,atms_2833)
}
}
}
}
fun y_wrapper_286<3>(env_2836,a_2837) :=
let y_2838 := nil() in
let y_2839 := cons(a_2837,y_2838) in
halt y_2839
fun y_wrapper_287<3>(env_2840,a_2841) :=
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_2842 := proj_2 841 env_2840 in
let CertiCoq.Benchmarks.lib.vs.order_eqv_pure_atom_wrapper_proj_2843 := proj_3 841 env_2840 in
let x0_proj_2844 := proj_0 841 env_2840 in
let y_proj_2845 := proj_1 841 env_2840 in
let y_2846 := Eqv(x0_proj_2844,y_proj_2845) in
let y_2847 := nil() in
let y_2848 := cons(a_2841,y_2847) in
let y_2849 := cons(y_2846,y_2848) in
let y_2851 := app map_known_133<19>(y_2849,CertiCoq.Benchmarks.lib.vs.order_eqv_pure_atom_wrapper_proj_2843) in
rsort_uniq_uncurried_uncurried_known_136<19>(y_2851,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_2842)
fun y_known_288<19>(sa_2855,y_2856) :=
case sa_2855 of {
| Next =>
let y_2857 := true() in
halt y_2857
| Lseg =>
let e_2858 := proj_0 137 sa_2855 in
let e0_2859 := proj_1 137 sa_2855 in
case e_2858 of {
| Nil =>
case e0_2859 of {
| Nil =>
let y_2860 := false() in
halt y_2860
| Var =>
let y_2861 := true() in
halt y_2861
}
| Var =>
let x_2862 := proj_0 143 e_2858 in
case e0_2859 of {
| Nil =>
let y_2863 := true() in
halt y_2863
| Var =>
let y_2864 := proj_0 143 e0_2859 in
let y_2866 := app compare_cont_uncurried_uncurried_known_107<4>(y_2864,x_2862,y_2856) in
let y_2868 := app CertiCoq.Benchmarks.lib.vs.isEq_known_211<314>(y_2866) in
Coq.Init.Datatypes.negb_known_172<311>(y_2868)
}
}
}
fun y_wrapper_289<3>(env_2870,sa_2871) :=
let y_proj_2873 := proj_0 850 env_2870 in
y_known_288<19>(sa_2871,y_proj_2873)
fun y_known_290<4>(a_2875,t_2876,i_2877) :=
case a_2875 of {
| Next =>
let t1_2878 := proj_0 136 a_2875 in
let t2_2879 := proj_1 136 a_2875 in
let y_2881 := app CertiCoq.Benchmarks.lib.vs.subst_expr_uncurried_uncurried_known_167<4>(t1_2878,t_2876,i_2877) in
let y_2883 := app CertiCoq.Benchmarks.lib.vs.subst_expr_uncurried_uncurried_known_167<4>(t2_2879,t_2876,i_2877) in
let y_2884 := Next(y_2881,y_2883) in
halt y_2884
| Lseg =>
let t1_2885 := proj_0 137 a_2875 in
let t2_2886 := proj_1 137 a_2875 in
let y_2888 := app CertiCoq.Benchmarks.lib.vs.subst_expr_uncurried_uncurried_known_167<4>(t1_2885,t_2876,i_2877) in
let y_2890 := app CertiCoq.Benchmarks.lib.vs.subst_expr_uncurried_uncurried_known_167<4>(t2_2886,t_2876,i_2877) in
let y_2891 := Lseg(y_2888,y_2890) in
halt y_2891
}
fun y_wrapper_291<3>(env_2892,a_2893) :=
let t_proj_2895 := proj_0 858 env_2892 in
let i_proj_2896 := proj_1 858 env_2892 in
y_known_290<4>(a_2893,t_proj_2895,i_proj_2896)
fun CertiCoq.Benchmarks.lib.vs.HeapResolve.normalize1_3_292<3>(env_2897,pc_2898) :=
let CertiCoq.Benchmarks.lib.vs.HeapResolve.normalize1_3_uncurried_clo_2899 := con_15(CertiCoq.Benchmarks.lib.vs.HeapResolve.normalize1_3_uncurried_294,env_2897) in
let env_2900 := con_866(CertiCoq.Benchmarks.lib.vs.HeapResolve.normalize1_3_uncurried_clo_2899,pc_2898) in
let y_wrapper_clo_2901 := con_15(y_wrapper_293,env_2900) in
halt y_wrapper_clo_2901
fun y_wrapper_293<3>(env_2902,sc_2903) :=
let CertiCoq.Benchmarks.lib.vs.HeapResolve.normalize1_3_uncurried_proj_2904 := proj_0 866 env_2902 in
let pc_proj_2905 := proj_1 866 env_2902 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.normalize1_3_uncurried_code_2906 := proj_0 15 CertiCoq.Benchmarks.lib.vs.HeapResolve.normalize1_3_uncurried_proj_2904 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.normalize1_3_uncurried_env_2907 := proj_1 15 CertiCoq.Benchmarks.lib.vs.HeapResolve.normalize1_3_uncurried_proj_2904 in
CertiCoq.Benchmarks.lib.vs.HeapResolve.normalize1_3_uncurried_code_2906<4>(CertiCoq.Benchmarks.lib.vs.HeapResolve.normalize1_3_uncurried_env_2907,sc_2903,pc_proj_2905)
fun CertiCoq.Benchmarks.lib.vs.HeapResolve.normalize1_3_uncurried_294<4>(env_2908,sc_2909,pc_2910) :=
case pc_2910 of {
| PureClause =>
let gamma_2911 := proj_0 133 pc_2910 in
let delta0_2912 := proj_1 133 pc_2910 in
case delta0_2912 of {
| nil =>
halt sc_2909
| cons =>
let p_2913 := proj_0 149 delta0_2912 in
let delta_2914 := proj_1 149 delta0_2912 in
case p_2913 of {
| Eqv =>
let e_2915 := proj_0 141 p_2913 in
let y_2916 := proj_1 141 p_2913 in
case e_2915 of {
| Nil =>
halt sc_2909
| Var =>
let x_2917 := proj_0 143 e_2915 in
case sc_2909 of {
| PureClause =>
halt sc_2909
| PosSpaceClause =>
let gamma'_2918 := proj_0 134 sc_2909 in
let delta'_2919 := proj_1 134 sc_2909 in
let sigma_2920 := proj_2 134 sc_2909 in
let y_2922 := app app_uncurried_known_143<19>(gamma'_2918,gamma_2911) in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_2923 := proj_0 864 env_2908 in
let y_2926 := app rsort_uniq_uncurried_uncurried_known_136<19>(y_2922,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_2923) in
let y_2928 := app app_uncurried_known_143<19>(delta'_2919,delta_2914) in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_2929 := proj_0 864 env_2908 in
let y_2932 := app rsort_uniq_uncurried_uncurried_known_136<19>(y_2928,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_2929) in
let env_2933 := con_858(y_2916,x_2917) in
let y_wrapper_clo_2934 := con_15(y_wrapper_291,env_2933) in
let y_2936 := app map_known_133<19>(sigma_2920,y_wrapper_clo_2934) in
let y_2937 := PosSpaceClause(y_2926,y_2932,y_2936) in
halt y_2937
| NegSpaceClause =>
let gamma'_2938 := proj_0 135 sc_2909 in
let sigma_2939 := proj_1 135 sc_2909 in
let delta'_2940 := proj_2 135 sc_2909 in
let y_2942 := app app_uncurried_known_143<19>(gamma'_2938,gamma_2911) in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_2943 := proj_0 864 env_2908 in
let y_2946 := app rsort_uniq_uncurried_uncurried_known_136<19>(y_2942,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_2943) in
let env_2947 := con_858(y_2916,x_2917) in
let y_wrapper_clo_2948 := con_15(y_wrapper_291,env_2947) in
let y_2950 := app map_known_133<19>(sigma_2939,y_wrapper_clo_2948) in
let y_2952 := app app_uncurried_known_143<19>(delta'_2940,delta_2914) in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_2953 := proj_0 864 env_2908 in
let y_2956 := app rsort_uniq_uncurried_uncurried_known_136<19>(y_2952,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_2953) in
let y_2957 := NegSpaceClause(y_2946,y_2950,y_2956) in
halt y_2957
}
}
}
}
| PosSpaceClause =>
halt sc_2909
| NegSpaceClause =>
halt sc_2909
}
fun CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_295<4>(env_2958,sc_2959,s_2960) :=
let y_2961 := con_99() in
let CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_2962 := proj_1 878 env_2958 in
let env_2963 := con_884(CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_2962,y_2961) in
let y_proj_2964 := proj_0 878 env_2958 in
let y_2966 := app CertiCoq.Benchmarks.lib.vs.M.this_known_127<304>(s_2960) in
let y_2968 := app elements_aux_uncurried_known_146<19>(y_2966,y_proj_2964) in
let y_wrapper_clo_2969 := con_15(y_wrapper_297,env_2963) in
let y_2972 := app rsort_uncurried_uncurried_known_221<19>(y_2968,y_wrapper_clo_2969) in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.normalize1_3_proj_2973 := proj_3 878 env_2958 in
let y_2975 := app fold_right_known_154<4>(y_2972,sc_2959,CertiCoq.Benchmarks.lib.vs.HeapResolve.normalize1_3_proj_2973) in
case y_2975 of {
| PureClause =>
halt y_2975
| PosSpaceClause =>
let gamma_2976 := proj_0 134 y_2975 in
let delta_2977 := proj_1 134 y_2975 in
let sigma_2978 := proj_2 134 y_2975 in
let y_wrapper_proj_2979 := proj_4 878 env_2958 in
let y_2981 := app filter_known_130<19>(sigma_2978,y_wrapper_proj_2979) in
let y_2982 := PosSpaceClause(gamma_2976,delta_2977,y_2981) in
halt y_2982
| NegSpaceClause =>
let gamma_2983 := proj_0 135 y_2975 in
let sigma_2984 := proj_1 135 y_2975 in
let delta_2985 := proj_2 135 y_2975 in
let y_wrapper_proj_2986 := proj_4 878 env_2958 in
let y_2988 := app filter_known_130<19>(sigma_2984,y_wrapper_proj_2986) in
let y_2989 := NegSpaceClause(gamma_2983,y_2988,delta_2985) in
halt y_2989
}
fun y_wrapper_296<3>(env_2990,b_2991) :=
let CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_2992 := proj_2 882 env_2990 in
let a_proj_2994 := proj_0 882 env_2990 in
CertiCoq.Benchmarks.lib.vs.rev_cmp_uncurried_uncurried_uncurried_known_224<4>(b_2991,a_proj_2994,CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_2992)
fun y_wrapper_297<3>(env_2996,a_2997) :=
let CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_2998 := proj_0 884 env_2996 in
let y_proj_2999 := proj_1 884 env_2996 in
let env_3000 := con_882(a_2997,y_proj_2999,CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_2998) in
let y_wrapper_clo_3001 := con_15(y_wrapper_296,env_3000) in
halt y_wrapper_clo_3001
fun y_wrapper_298<3>(env_3002,d_3003) :=
let y_proj_3004 := proj_1 895 env_3002 in
let atms_proj_3005 := proj_0 895 env_3002 in
let env_3006 := con_899(d_3003,y_proj_3004) in
let y_wrapper_clo_3007 := con_15(y_wrapper_300,env_3006) in
map_known_133<19>(atms_proj_3005,y_wrapper_clo_3007)
fun y_known_299<4>(atm_3010,y_3011,d_3012) :=
case d_3012 of {
| PureClause =>
let gamma_3013 := proj_0 133 d_3012 in
let delta_3014 := proj_1 133 d_3012 in
case gamma_3013 of {
| nil =>
case delta_3014 of {
| nil =>
halt atm_3010
| cons =>
let p_3015 := proj_0 149 delta_3014 in
let l_3016 := proj_1 149 delta_3014 in
case p_3015 of {
| Eqv =>
let s_3017 := proj_0 141 p_3015 in
let t_3018 := proj_1 141 p_3015 in
case l_3016 of {
| nil =>
CertiCoq.Benchmarks.lib.vs.Superposition.rewrite_in_space_uncurried_uncurried_known_198<104>(atm_3010,t_3018,s_3017,y_3011)
| cons =>
halt atm_3010
}
}
}
| cons =>
halt atm_3010
}
| PosSpaceClause =>
halt atm_3010
| NegSpaceClause =>
halt atm_3010
}
fun y_wrapper_300<3>(env_3020,atm_3021) :=
let y_proj_3023 := proj_1 899 env_3020 in
let d_proj_3024 := proj_0 899 env_3020 in
y_known_299<4>(atm_3021,y_proj_3023,d_proj_3024)
fun y_wrapper_301<3>(env_3025,atms_3026) :=
let y_proj_3027 := proj_0 902 env_3025 in
let env_3028 := con_895(atms_3026,y_proj_3027) in
let y_wrapper_clo_3029 := con_15(y_wrapper_298,env_3028) in
halt y_wrapper_clo_3029
fun lseg_in_dom2_uncurried_uncurried_302<104>(env_3030,sc_3031,y_3032,x_3033) :=
case sc_3031 of {
| nil =>
let y_3034 := None() in
halt y_3034
| cons =>
let s_3035 := proj_0 149 sc_3031 in
let sc'_3036 := proj_1 149 sc_3031 in
case s_3035 of {
| Next =>
lseg_in_dom2_uncurried_uncurried_302<104>(env_3030,sc'_3036,y_3032,x_3033)
| Lseg =>
let x0_3037 := proj_0 137 s_3035 in
let y0_3038 := proj_1 137 s_3035 in
case x0_3037 of {
| Nil =>
lseg_in_dom2_uncurried_uncurried_302<104>(env_3030,sc'_3036,y_3032,x_3033)
| Var =>
let x'_3039 := proj_0 143 x0_3037 in
let y_3041 := app F_known_158<308>(x_3033) in
let y_code_3042 := proj_0 15 y_3041 in
let y_env_3043 := proj_1 15 y_3041 in
let y_3044 := app y_code_3042<3>(y_env_3043,x'_3039) in
case y_3044 of {
| left =>
let y_proj_3046 := proj_0 906 env_3030 in
let y_3047 := app CertiCoq.Benchmarks.lib.vs.expr_eq_uncurried_known_187<4>(y_3032,y0_3038,y_proj_3046) in
let y_3049 := app Coq.Init.Datatypes.negb_known_172<311>(y_3047) in
case y_3049 of {
| true =>
let y_3050 := Some(y0_3038) in
halt y_3050
| false =>
lseg_in_dom2_uncurried_uncurried_302<104>(env_3030,sc'_3036,y_3032,x_3033)
}
| right =>
lseg_in_dom2_uncurried_uncurried_302<104>(env_3030,sc'_3036,y_3032,x_3033)
}
}
}
}
fun CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_303<4>(env_3051,nc_3052,pc_3053) :=
let CertiCoq.Benchmarks.lib.vs.var2_proj_3054 := proj_0 910 env_3051 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_3055 := proj_1 910 env_3051 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_3056 := proj_2 910 env_3051 in
let CertiCoq.Benchmarks.lib.vs.M.empty_proj_3057 := proj_5 910 env_3051 in
let CertiCoq.Benchmarks.lib.vs.order_eqv_clause_proj_3058 := proj_6 910 env_3051 in
let CertiCoq.Benchmarks.lib.vs.M.union_uncurried_proj_3059 := proj_7 910 env_3051 in
let CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_3060 := proj_9 910 env_3051 in
let env_3061 := con_911(CertiCoq.Benchmarks.lib.vs.var2_proj_3054,CertiCoq.Benchmarks.lib.vs.var1_proj_3055,CertiCoq.Benchmarks.lib.vs.var0_proj_3056,CertiCoq.Benchmarks.lib.vs.M.empty_proj_3057,CertiCoq.Benchmarks.lib.vs.order_eqv_clause_proj_3058,CertiCoq.Benchmarks.lib.vs.M.union_uncurried_proj_3059,pc_3053,CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_3060) in
let y_3062 := O() in
let y_3063 := S(y_3062) in
let y_3064 := S(y_3063) in
let y_3065 := S(y_3064) in
let y_3066 := S(y_3065) in
let y_3067 := S(y_3066) in
let y_3068 := S(y_3067) in
let y_3069 := S(y_3068) in
let y_3070 := S(y_3069) in
let y_3071 := S(y_3070) in
let y_3072 := S(y_3071) in
let y_3073 := S(y_3072) in
let y_3074 := S(y_3073) in
let y_3075 := S(y_3074) in
let y_3076 := S(y_3075) in
let y_3077 := S(y_3076) in
let y_3078 := S(y_3077) in
let y_3079 := S(y_3078) in
let y_3080 := S(y_3079) in
let y_3081 := S(y_3080) in
let y_3082 := S(y_3081) in
let y_3083 := S(y_3082) in
let y_3084 := S(y_3083) in
let y_3085 := S(y_3084) in
let y_3086 := S(y_3085) in
let y_3087 := S(y_3086) in
let y_3088 := S(y_3087) in
let y_3089 := S(y_3088) in
let y_3090 := S(y_3089) in
let y_3091 := S(y_3090) in
let y_3092 := S(y_3091) in
let y_3093 := S(y_3092) in
let y_3094 := S(y_3093) in
let y_3095 := S(y_3094) in
let y_3096 := S(y_3095) in
let y_3097 := S(y_3096) in
let y_3098 := S(y_3097) in
let y_3099 := S(y_3098) in
let y_3100 := S(y_3099) in
let y_3101 := S(y_3100) in
let y_3102 := S(y_3101) in
let y_3103 := S(y_3102) in
let y_3104 := S(y_3103) in
let y_3105 := S(y_3104) in
let y_3106 := S(y_3105) in
let y_3107 := S(y_3106) in
let y_3108 := S(y_3107) in
let y_3109 := S(y_3108) in
let y_3110 := S(y_3109) in
let y_3111 := S(y_3110) in
let y_3112 := S(y_3111) in
let y_3113 := S(y_3112) in
let y_3114 := S(y_3113) in
let y_3115 := S(y_3114) in
let y_3116 := S(y_3115) in
let y_3117 := S(y_3116) in
let y_3118 := S(y_3117) in
let y_3119 := S(y_3118) in
let y_3120 := S(y_3119) in
let y_3121 := S(y_3120) in
let y_3122 := S(y_3121) in
let y_3123 := S(y_3122) in
let y_3124 := S(y_3123) in
let y_3125 := S(y_3124) in
let y_3126 := S(y_3125) in
let y_3127 := S(y_3126) in
let y_3128 := S(y_3127) in
let y_3129 := S(y_3128) in
let y_3130 := S(y_3129) in
let y_3131 := S(y_3130) in
let y_3132 := S(y_3131) in
let y_3133 := S(y_3132) in
let y_3134 := S(y_3133) in
let y_3135 := S(y_3134) in
let y_3136 := S(y_3135) in
let y_3137 := S(y_3136) in
let y_3138 := S(y_3137) in
let y_3139 := S(y_3138) in
let y_3140 := S(y_3139) in
let y_3141 := S(y_3140) in
let y_3142 := S(y_3141) in
let y_3143 := S(y_3142) in
let y_3144 := S(y_3143) in
let y_3145 := S(y_3144) in
let y_3146 := S(y_3145) in
let y_3147 := S(y_3146) in
let y_3148 := S(y_3147) in
let y_3149 := S(y_3148) in
let y_3150 := S(y_3149) in
let y_3151 := S(y_3150) in
let y_3152 := S(y_3151) in
let y_3153 := S(y_3152) in
let y_3154 := S(y_3153) in
let y_3155 := S(y_3154) in
let y_3156 := S(y_3155) in
let y_3157 := S(y_3156) in
let y_3158 := S(y_3157) in
let y_3159 := S(y_3158) in
let y_3160 := S(y_3159) in
let y_3161 := S(y_3160) in
let y_3162 := S(y_3161) in
let y_3163 := S(y_3162) in
let y_3164 := S(y_3163) in
let y_3165 := S(y_3164) in
let y_3166 := S(y_3165) in
let y_3167 := S(y_3166) in
let y_3168 := S(y_3167) in
let y_3169 := S(y_3168) in
let y_3170 := S(y_3169) in
let y_3171 := S(y_3170) in
let y_3172 := S(y_3171) in
let y_3173 := S(y_3172) in
let y_3174 := S(y_3173) in
let y_3175 := S(y_3174) in
let y_3176 := S(y_3175) in
let y_3177 := S(y_3176) in
let y_3178 := S(y_3177) in
let y_3179 := S(y_3178) in
let y_3180 := S(y_3179) in
let y_3181 := S(y_3180) in
let y_3182 := S(y_3181) in
let y_3183 := S(y_3182) in
let y_3184 := S(y_3183) in
let y_3185 := S(y_3184) in
let y_3186 := S(y_3185) in
let y_3187 := S(y_3186) in
let y_3188 := S(y_3187) in
let y_3189 := S(y_3188) in
let y_3190 := S(y_3189) in
let y_3191 := S(y_3190) in
let y_3192 := S(y_3191) in
let y_3193 := S(y_3192) in
let y_3194 := S(y_3193) in
let y_3195 := S(y_3194) in
let y_3196 := S(y_3195) in
let y_3197 := S(y_3196) in
let y_3198 := S(y_3197) in
let y_3199 := S(y_3198) in
let y_3200 := S(y_3199) in
let y_3201 := S(y_3200) in
let y_3202 := S(y_3201) in
let y_3203 := S(y_3202) in
let y_3204 := S(y_3203) in
let y_3205 := S(y_3204) in
let y_3206 := S(y_3205) in
let y_3207 := S(y_3206) in
let y_3208 := S(y_3207) in
let y_3209 := S(y_3208) in
let y_3210 := S(y_3209) in
let y_3211 := S(y_3210) in
let y_3212 := S(y_3211) in
let y_3213 := S(y_3212) in
let y_3214 := S(y_3213) in
let y_3215 := S(y_3214) in
let y_3216 := S(y_3215) in
let y_3217 := S(y_3216) in
let y_3218 := S(y_3217) in
let y_3219 := S(y_3218) in
let y_3220 := S(y_3219) in
let y_3221 := S(y_3220) in
let y_3222 := S(y_3221) in
let y_3223 := S(y_3222) in
let y_3224 := S(y_3223) in
let y_3225 := S(y_3224) in
let y_3226 := S(y_3225) in
let y_3227 := S(y_3226) in
let y_3228 := S(y_3227) in
let y_3229 := S(y_3228) in
let y_3230 := S(y_3229) in
let y_3231 := S(y_3230) in
let y_3232 := S(y_3231) in
let y_3233 := S(y_3232) in
let y_3234 := S(y_3233) in
let y_3235 := S(y_3234) in
let y_3236 := S(y_3235) in
let y_3237 := S(y_3236) in
let y_3238 := S(y_3237) in
let y_3239 := S(y_3238) in
let y_3240 := S(y_3239) in
let y_3241 := S(y_3240) in
let y_3242 := S(y_3241) in
let y_3243 := S(y_3242) in
let y_3244 := S(y_3243) in
let y_3245 := S(y_3244) in
let y_3246 := S(y_3245) in
let y_3247 := S(y_3246) in
let y_3248 := S(y_3247) in
let y_3249 := S(y_3248) in
let y_3250 := S(y_3249) in
let y_3251 := S(y_3250) in
let y_3252 := S(y_3251) in
let y_3253 := S(y_3252) in
let y_3254 := S(y_3253) in
let y_3255 := S(y_3254) in
let y_3256 := S(y_3255) in
let y_3257 := S(y_3256) in
let y_3258 := S(y_3257) in
let y_3259 := S(y_3258) in
let y_3260 := S(y_3259) in
let y_3261 := S(y_3260) in
let y_3262 := S(y_3261) in
let y_3263 := S(y_3262) in
let y_3264 := S(y_3263) in
let y_3265 := S(y_3264) in
let y_3266 := S(y_3265) in
let y_3267 := S(y_3266) in
let y_3268 := S(y_3267) in
let y_3269 := S(y_3268) in
let y_3270 := S(y_3269) in
let y_3271 := S(y_3270) in
let y_3272 := S(y_3271) in
let y_3273 := S(y_3272) in
let y_3274 := S(y_3273) in
let y_3275 := S(y_3274) in
let y_3276 := S(y_3275) in
let y_3277 := S(y_3276) in
let y_3278 := S(y_3277) in
let y_3279 := S(y_3278) in
let y_3280 := S(y_3279) in
let y_3281 := S(y_3280) in
let y_3282 := S(y_3281) in
let y_3283 := S(y_3282) in
let y_3284 := S(y_3283) in
let y_3285 := S(y_3284) in
let y_3286 := S(y_3285) in
let y_3287 := S(y_3286) in
let y_3288 := S(y_3287) in
let y_3289 := S(y_3288) in
let y_3290 := S(y_3289) in
let y_3291 := S(y_3290) in
let y_3292 := S(y_3291) in
let y_3293 := S(y_3292) in
let y_3294 := S(y_3293) in
let y_3295 := S(y_3294) in
let y_3296 := S(y_3295) in
let y_3297 := S(y_3296) in
let y_3298 := S(y_3297) in
let y_3299 := S(y_3298) in
let y_3300 := S(y_3299) in
let y_3301 := S(y_3300) in
let y_3302 := S(y_3301) in
let y_3303 := S(y_3302) in
let y_3304 := S(y_3303) in
let y_3305 := S(y_3304) in
let y_3306 := S(y_3305) in
let y_3307 := S(y_3306) in
let y_3308 := S(y_3307) in
let y_3309 := S(y_3308) in
let y_3310 := S(y_3309) in
let y_3311 := S(y_3310) in
let y_3312 := S(y_3311) in
let y_3313 := S(y_3312) in
let y_3314 := S(y_3313) in
let y_3315 := S(y_3314) in
let y_3316 := S(y_3315) in
let y_3317 := S(y_3316) in
let y_3318 := S(y_3317) in
let y_3319 := S(y_3318) in
let y_3320 := S(y_3319) in
let y_3321 := S(y_3320) in
let y_3322 := S(y_3321) in
let y_3323 := S(y_3322) in
let y_3324 := S(y_3323) in
let y_3325 := S(y_3324) in
let y_3326 := S(y_3325) in
let y_3327 := S(y_3326) in
let y_3328 := S(y_3327) in
let y_3329 := S(y_3328) in
let y_3330 := S(y_3329) in
let y_3331 := S(y_3330) in
let y_3332 := S(y_3331) in
let y_3333 := S(y_3332) in
let y_3334 := S(y_3333) in
let y_3335 := S(y_3334) in
let y_3336 := S(y_3335) in
let y_3337 := S(y_3336) in
let y_3338 := S(y_3337) in
let y_3339 := S(y_3338) in
let y_3340 := S(y_3339) in
let y_3341 := S(y_3340) in
let y_3342 := S(y_3341) in
let y_3343 := S(y_3342) in
let y_3344 := S(y_3343) in
let y_3345 := S(y_3344) in
let y_3346 := S(y_3345) in
let y_3347 := S(y_3346) in
let y_3348 := S(y_3347) in
let y_3349 := S(y_3348) in
let y_3350 := S(y_3349) in
let y_3351 := S(y_3350) in
let y_3352 := S(y_3351) in
let y_3353 := S(y_3352) in
let y_3354 := S(y_3353) in
let y_3355 := S(y_3354) in
let y_3356 := S(y_3355) in
let y_3357 := S(y_3356) in
let y_3358 := S(y_3357) in
let y_3359 := S(y_3358) in
let y_3360 := S(y_3359) in
let y_3361 := S(y_3360) in
let y_3362 := S(y_3361) in
let y_3363 := S(y_3362) in
let y_3364 := S(y_3363) in
let y_3365 := S(y_3364) in
let y_3366 := S(y_3365) in
let y_3367 := S(y_3366) in
let y_3368 := S(y_3367) in
let y_3369 := S(y_3368) in
let y_3370 := S(y_3369) in
let y_3371 := S(y_3370) in
let y_3372 := S(y_3371) in
let y_3373 := S(y_3372) in
let y_3374 := S(y_3373) in
let y_3375 := S(y_3374) in
let y_3376 := S(y_3375) in
let y_3377 := S(y_3376) in
let y_3378 := S(y_3377) in
let y_3379 := S(y_3378) in
let y_3380 := S(y_3379) in
let y_3381 := S(y_3380) in
let y_3382 := S(y_3381) in
let y_3383 := S(y_3382) in
let y_3384 := S(y_3383) in
let y_3385 := S(y_3384) in
let y_3386 := S(y_3385) in
let y_3387 := S(y_3386) in
let y_3388 := S(y_3387) in
let y_3389 := S(y_3388) in
let y_3390 := S(y_3389) in
let y_3391 := S(y_3390) in
let y_3392 := S(y_3391) in
let y_3393 := S(y_3392) in
let y_3394 := S(y_3393) in
let y_3395 := S(y_3394) in
let y_3396 := S(y_3395) in
let y_3397 := S(y_3396) in
let y_3398 := S(y_3397) in
let y_3399 := S(y_3398) in
let y_3400 := S(y_3399) in
let y_3401 := S(y_3400) in
let y_3402 := S(y_3401) in
let y_3403 := S(y_3402) in
let y_3404 := S(y_3403) in
let y_3405 := S(y_3404) in
let y_3406 := S(y_3405) in
let y_3407 := S(y_3406) in
let y_3408 := S(y_3407) in
let y_3409 := S(y_3408) in
let y_3410 := S(y_3409) in
let y_3411 := S(y_3410) in
let y_3412 := S(y_3411) in
let y_3413 := S(y_3412) in
let y_3414 := S(y_3413) in
let y_3415 := S(y_3414) in
let y_3416 := S(y_3415) in
let y_3417 := S(y_3416) in
let y_3418 := S(y_3417) in
let y_3419 := S(y_3418) in
let y_3420 := S(y_3419) in
let y_3421 := S(y_3420) in
let y_3422 := S(y_3421) in
let y_3423 := S(y_3422) in
let y_3424 := S(y_3423) in
let y_3425 := S(y_3424) in
let y_3426 := S(y_3425) in
let y_3427 := S(y_3426) in
let y_3428 := S(y_3427) in
let y_3429 := S(y_3428) in
let y_3430 := S(y_3429) in
let y_3431 := S(y_3430) in
let y_3432 := S(y_3431) in
let y_3433 := S(y_3432) in
let y_3434 := S(y_3433) in
let y_3435 := S(y_3434) in
let y_3436 := S(y_3435) in
let y_3437 := S(y_3436) in
let y_3438 := S(y_3437) in
let y_3439 := S(y_3438) in
let y_3440 := S(y_3439) in
let y_3441 := S(y_3440) in
let y_3442 := S(y_3441) in
let y_3443 := S(y_3442) in
let y_3444 := S(y_3443) in
let y_3445 := S(y_3444) in
let y_3446 := S(y_3445) in
let y_3447 := S(y_3446) in
let y_3448 := S(y_3447) in
let y_3449 := S(y_3448) in
let y_3450 := S(y_3449) in
let y_3451 := S(y_3450) in
let y_3452 := S(y_3451) in
let y_3453 := S(y_3452) in
let y_3454 := S(y_3453) in
let y_3455 := S(y_3454) in
let y_3456 := S(y_3455) in
let y_3457 := S(y_3456) in
let y_3458 := S(y_3457) in
let y_3459 := S(y_3458) in
let y_3460 := S(y_3459) in
let y_3461 := S(y_3460) in
let y_3462 := S(y_3461) in
let y_3463 := S(y_3462) in
let y_3464 := S(y_3463) in
let y_3465 := S(y_3464) in
let y_3466 := S(y_3465) in
let y_3467 := S(y_3466) in
let y_3468 := S(y_3467) in
let y_3469 := S(y_3468) in
let y_3470 := S(y_3469) in
let y_3471 := S(y_3470) in
let y_3472 := S(y_3471) in
let y_3473 := S(y_3472) in
let y_3474 := S(y_3473) in
let y_3475 := S(y_3474) in
let y_3476 := S(y_3475) in
let y_3477 := S(y_3476) in
let y_3478 := S(y_3477) in
let y_3479 := S(y_3478) in
let y_3480 := S(y_3479) in
let y_3481 := S(y_3480) in
let y_3482 := S(y_3481) in
let y_3483 := S(y_3482) in
let y_3484 := S(y_3483) in
let y_3485 := S(y_3484) in
let y_3486 := S(y_3485) in
let y_3487 := S(y_3486) in
let y_3488 := S(y_3487) in
let y_3489 := S(y_3488) in
let y_3490 := S(y_3489) in
let y_3491 := S(y_3490) in
let y_3492 := S(y_3491) in
let y_3493 := S(y_3492) in
let y_3494 := S(y_3493) in
let y_3495 := S(y_3494) in
let y_3496 := S(y_3495) in
let y_3497 := S(y_3496) in
let y_3498 := S(y_3497) in
let y_3499 := S(y_3498) in
let y_3500 := S(y_3499) in
let y_3501 := S(y_3500) in
let y_3502 := S(y_3501) in
let y_3503 := S(y_3502) in
let y_3504 := S(y_3503) in
let y_3505 := S(y_3504) in
let y_3506 := S(y_3505) in
let y_3507 := S(y_3506) in
let y_3508 := S(y_3507) in
let y_3509 := S(y_3508) in
let y_3510 := S(y_3509) in
let y_3511 := S(y_3510) in
let y_3512 := S(y_3511) in
let y_3513 := S(y_3512) in
let y_3514 := S(y_3513) in
let y_3515 := S(y_3514) in
let y_3516 := S(y_3515) in
let y_3517 := S(y_3516) in
let y_3518 := S(y_3517) in
let y_3519 := S(y_3518) in
let y_3520 := S(y_3519) in
let y_3521 := S(y_3520) in
let y_3522 := S(y_3521) in
let y_3523 := S(y_3522) in
let y_3524 := S(y_3523) in
let y_3525 := S(y_3524) in
let y_3526 := S(y_3525) in
let y_3527 := S(y_3526) in
let y_3528 := S(y_3527) in
let y_3529 := S(y_3528) in
let y_3530 := S(y_3529) in
let y_3531 := S(y_3530) in
let y_3532 := S(y_3531) in
let y_3533 := S(y_3532) in
let y_3534 := S(y_3533) in
let y_3535 := S(y_3534) in
let y_3536 := S(y_3535) in
let y_3537 := S(y_3536) in
let y_3538 := S(y_3537) in
let y_3539 := S(y_3538) in
let y_3540 := S(y_3539) in
let y_3541 := S(y_3540) in
let y_3542 := S(y_3541) in
let y_3543 := S(y_3542) in
let y_3544 := S(y_3543) in
let y_3545 := S(y_3544) in
let y_3546 := S(y_3545) in
let y_3547 := S(y_3546) in
let y_3548 := S(y_3547) in
let y_3549 := S(y_3548) in
let y_3550 := S(y_3549) in
let y_3551 := S(y_3550) in
let y_3552 := S(y_3551) in
let y_3553 := S(y_3552) in
let y_3554 := S(y_3553) in
let y_3555 := S(y_3554) in
let y_3556 := S(y_3555) in
let y_3557 := S(y_3556) in
let y_3558 := S(y_3557) in
let y_3559 := S(y_3558) in
let y_3560 := S(y_3559) in
let y_3561 := S(y_3560) in
let y_3562 := S(y_3561) in
let y_proj_3563 := proj_3 910 env_3051 in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_3564 := proj_4 910 env_3051 in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_3565 := proj_8 910 env_3051 in
let CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_3566 := proj_9 910 env_3051 in
let env_3567 := con_924(y_proj_3563,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_3564,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_3565,CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_3566) in
let CertiCoq.Benchmarks.lib.vs.M.empty_proj_3569 := proj_5 910 env_3051 in
let y_3570 := app CertiCoq.Benchmarks.lib.vs.M.this_known_127<304>(CertiCoq.Benchmarks.lib.vs.M.empty_proj_3569) in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_3572 := proj_4 910 env_3051 in
let y_3573 := app CertiCoq.Benchmarks.lib.vs.M.Raw.add_uncurried_known_124<4>(y_3570,nc_3052,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_3572) in
let y_3574 := con_99() in
let y_3575 := Mkt(y_3573,y_3574) in
let y_3576 := app do_unfold_uncurried_uncurried_307<104>(env_3567,y_3575,pc_3053,y_3562) in
let y_3578 := app CertiCoq.Benchmarks.lib.vs.M.this_known_127<304>(y_3576) in
let y_clo_3579 := con_15(y_304,env_3061) in
let CertiCoq.Benchmarks.lib.vs.M.empty_proj_3581 := proj_5 910 env_3051 in
fold_uncurried_uncurried_uncurried_known_261<4>(CertiCoq.Benchmarks.lib.vs.M.empty_proj_3581,y_3578,y_clo_3579)
fun y_304<3>(env_3583,c_3584) :=
let CertiCoq.Benchmarks.lib.vs.var2_proj_3585 := proj_0 911 env_3583 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_3586 := proj_1 911 env_3583 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_3587 := proj_2 911 env_3583 in
let CertiCoq.Benchmarks.lib.vs.M.empty_proj_3588 := proj_3 911 env_3583 in
let CertiCoq.Benchmarks.lib.vs.order_eqv_clause_proj_3589 := proj_4 911 env_3583 in
let CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_3590 := proj_7 911 env_3583 in
let env_3591 := con_912(CertiCoq.Benchmarks.lib.vs.var2_proj_3585,CertiCoq.Benchmarks.lib.vs.var1_proj_3586,CertiCoq.Benchmarks.lib.vs.var0_proj_3587,CertiCoq.Benchmarks.lib.vs.M.empty_proj_3588,CertiCoq.Benchmarks.lib.vs.order_eqv_clause_proj_3589,c_3584,CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_3590) in
let pc_proj_3592 := proj_6 911 env_3583 in
let y_3593 := app f_case_305<19>(env_3591,pc_proj_3592) in
let CertiCoq.Benchmarks.lib.vs.M.union_uncurried_proj_3594 := proj_5 911 env_3583 in
let env_3595 := con_922(CertiCoq.Benchmarks.lib.vs.M.union_uncurried_proj_3594,y_3593) in
let y_wrapper_clo_3596 := con_15(y_wrapper_306,env_3595) in
halt y_wrapper_clo_3596
fun f_case_305<19>(env_3597,s_3598) :=
case s_3598 of {
| PureClause =>
let CertiCoq.Benchmarks.lib.vs.M.empty_proj_3599 := proj_3 912 env_3597 in
halt CertiCoq.Benchmarks.lib.vs.M.empty_proj_3599
| PosSpaceClause =>
let gamma'_3600 := proj_0 134 s_3598 in
let delta'_3601 := proj_1 134 s_3598 in
let sigma'_3602 := proj_2 134 s_3598 in
let c_proj_3603 := proj_5 912 env_3597 in
case c_proj_3603 of {
| PureClause =>
let CertiCoq.Benchmarks.lib.vs.M.empty_proj_3604 := proj_3 912 env_3597 in
halt CertiCoq.Benchmarks.lib.vs.M.empty_proj_3604
| PosSpaceClause =>
let CertiCoq.Benchmarks.lib.vs.M.empty_proj_3605 := proj_3 912 env_3597 in
halt CertiCoq.Benchmarks.lib.vs.M.empty_proj_3605
| NegSpaceClause =>
let c_proj_3606 := proj_5 912 env_3597 in
let gamma_3607 := proj_0 135 c_proj_3606 in
let c_proj_3608 := proj_5 912 env_3597 in
let sigma_3609 := proj_1 135 c_proj_3608 in
let c_proj_3610 := proj_5 912 env_3597 in
let delta_3611 := proj_2 135 c_proj_3610 in
let CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_3612 := proj_6 912 env_3597 in
let y_3615 := app rsort_uncurried_uncurried_known_221<19>(sigma_3609,CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_3612) in
let CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_3616 := proj_6 912 env_3597 in
let y_3619 := app rsort_uncurried_uncurried_known_221<19>(sigma'_3602,CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_3616) in
let CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_3620 := proj_6 912 env_3597 in
let y_3623 := app compare_list_uncurried_uncurried_uncurried_known_109<4>(y_3619,y_3615,CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_3620) in
let y_3625 := app CertiCoq.Benchmarks.lib.vs.isEq_known_211<314>(y_3623) in
case y_3625 of {
| true =>
let y_3627 := app app_uncurried_known_143<19>(gamma'_3600,gamma_3607) in
let y_3629 := app app_uncurried_known_143<19>(delta'_3601,delta_3611) in
let CertiCoq.Benchmarks.lib.vs.var2_proj_3630 := proj_0 912 env_3597 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_3632 := proj_1 912 env_3597 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_3634 := proj_2 912 env_3597 in
let y_3636 := app list_prio_uncurried_uncurried_uncurried_known_104<4>(CertiCoq.Benchmarks.lib.vs.var0_proj_3634,y_3629,CertiCoq.Benchmarks.lib.vs.var1_proj_3632) in
let y_3638 := app list_prio_uncurried_uncurried_uncurried_known_104<4>(y_3636,y_3627,CertiCoq.Benchmarks.lib.vs.var2_proj_3630) in
let y_3639 := con_99() in
let y_3640 := PureClause(y_3627,y_3629,y_3638,y_3639) in
let CertiCoq.Benchmarks.lib.vs.order_eqv_clause_proj_3641 := proj_4 912 env_3597 in
let CertiCoq.Benchmarks.lib.vs.order_eqv_clause_code_3642 := proj_0 15 CertiCoq.Benchmarks.lib.vs.order_eqv_clause_proj_3641 in
let CertiCoq.Benchmarks.lib.vs.order_eqv_clause_env_3643 := proj_1 15 CertiCoq.Benchmarks.lib.vs.order_eqv_clause_proj_3641 in
let y_3644 := app CertiCoq.Benchmarks.lib.vs.order_eqv_clause_code_3642<3>(CertiCoq.Benchmarks.lib.vs.order_eqv_clause_env_3643,y_3640) in
let y_3645 := Black() in
let y_3646 := Leaf() in
let y_3647 := Leaf() in
let y_3648 := Node(y_3645,y_3646,y_3644,y_3647) in
let y_3649 := con_99() in
let y_3650 := Mkt(y_3648,y_3649) in
halt y_3650
| false =>
let CertiCoq.Benchmarks.lib.vs.M.empty_proj_3651 := proj_3 912 env_3597 in
halt CertiCoq.Benchmarks.lib.vs.M.empty_proj_3651
}
}
| NegSpaceClause =>
let CertiCoq.Benchmarks.lib.vs.M.empty_proj_3652 := proj_3 912 env_3597 in
halt CertiCoq.Benchmarks.lib.vs.M.empty_proj_3652
}
fun y_wrapper_306<3>(env_3653,s'_3654) :=
let CertiCoq.Benchmarks.lib.vs.M.union_uncurried_proj_3655 := proj_0 922 env_3653 in
let y_proj_3656 := proj_1 922 env_3653 in
let CertiCoq.Benchmarks.lib.vs.M.union_uncurried_code_3657 := proj_0 15 CertiCoq.Benchmarks.lib.vs.M.union_uncurried_proj_3655 in
let CertiCoq.Benchmarks.lib.vs.M.union_uncurried_env_3658 := proj_1 15 CertiCoq.Benchmarks.lib.vs.M.union_uncurried_proj_3655 in
CertiCoq.Benchmarks.lib.vs.M.union_uncurried_code_3657<4>(CertiCoq.Benchmarks.lib.vs.M.union_uncurried_env_3658,s'_3654,y_proj_3656)
fun do_unfold_uncurried_uncurried_307<104>(env_3659,s_3660,pc_3661,n_3662) :=
case n_3662 of {
| O =>
halt s_3660
| S =>
let n'_3663 := proj_0 151 n_3662 in
let y_proj_3664 := proj_0 924 env_3659 in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_3665 := proj_2 924 env_3659 in
let CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_3666 := proj_3 924 env_3659 in
let env_3667 := con_925(y_proj_3664,pc_3661,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_3665,CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_3666) in
let y_3669 := app CertiCoq.Benchmarks.lib.vs.M.this_known_127<304>(s_3660) in
let y_clo_3670 := con_15(y_308,env_3667) in
let y_3672 := nil() in
let y_3674 := app fold_uncurried_uncurried_uncurried_known_261<4>(y_3672,y_3669,y_clo_3670) in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_3675 := proj_1 924 env_3659 in
let env_3676 := con_1017(CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_3675) in
let y_3677 := app add_list_to_set_uncurried_329<4>(env_3676,s_3660,y_3674) in
case y_3677 of {
| Some =>
let s''_3678 := proj_0 101 y_3677 in
do_unfold_uncurried_uncurried_307<104>(env_3659,s''_3678,pc_3661,n'_3663)
| None =>
halt s_3660
}
}
fun y_308<3>(env_3679,nc_3680) :=
let y_uncurried_clo_3681 := con_15(y_uncurried_310,env_3679) in
let env_3682 := con_927(y_uncurried_clo_3681,nc_3680) in
let y_wrapper_clo_3683 := con_15(y_wrapper_309,env_3682) in
halt y_wrapper_clo_3683
fun y_wrapper_309<3>(env_3684,l_3685) :=
let y_uncurried_proj_3686 := proj_0 927 env_3684 in
let nc_proj_3687 := proj_1 927 env_3684 in
let y_uncurried_code_3688 := proj_0 15 y_uncurried_proj_3686 in
let y_uncurried_env_3689 := proj_1 15 y_uncurried_proj_3686 in
y_uncurried_code_3688<4>(y_uncurried_env_3689,l_3685,nc_proj_3687)
fun y_uncurried_310<4>(env_3690,l_3691,nc_3692) :=
let pc_proj_3694 := proj_1 925 env_3690 in
let y_proj_3695 := proj_0 925 env_3690 in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_3696 := proj_2 925 env_3690 in
let CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_3697 := proj_3 925 env_3690 in
let y_3698 := app f_case_known_311<17>(pc_proj_3694,y_proj_3695,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_3696,CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_3697,nc_3692) in
let pc_proj_3700 := proj_1 925 env_3690 in
let y_proj_3701 := proj_0 925 env_3690 in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_3702 := proj_2 925 env_3690 in
let CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_3703 := proj_3 925 env_3690 in
let y_3704 := app f_case_known_315<17>(pc_proj_3700,y_proj_3701,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_3702,CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_3703,nc_3692) in
let pc_proj_3706 := proj_1 925 env_3690 in
let y_proj_3707 := proj_0 925 env_3690 in
let CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_3708 := proj_3 925 env_3690 in
let y_3709 := app f_case_known_319<104>(pc_proj_3706,y_proj_3707,CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_3708,nc_3692) in
let y_proj_3710 := proj_0 925 env_3690 in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_3711 := proj_2 925 env_3690 in
let CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_3712 := proj_3 925 env_3690 in
let env_3713 := con_973(y_proj_3710,nc_3692,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_3711,CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_3712) in
let pc_proj_3714 := proj_1 925 env_3690 in
let y_3715 := app f_case_322<19>(env_3713,pc_proj_3714) in
let y_proj_3716 := proj_0 925 env_3690 in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_3717 := proj_2 925 env_3690 in
let CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_3718 := proj_3 925 env_3690 in
let env_3719 := con_992(y_proj_3716,nc_3692,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_3717,CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_3718) in
let pc_proj_3720 := proj_1 925 env_3690 in
let y_3721 := app f_case_325<19>(env_3719,pc_proj_3720) in
let y_3723 := app app_uncurried_known_143<19>(l_3691,y_3721) in
let y_3725 := app app_uncurried_known_143<19>(y_3723,y_3715) in
let y_3727 := app app_uncurried_known_143<19>(y_3725,y_3709) in
let y_3729 := app app_uncurried_known_143<19>(y_3727,y_3704) in
app_uncurried_known_143<19>(y_3729,y_3698)
fun f_case_known_311<17>(s_3732,y_3733,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_3734,CertiCoq.Benchmarks.lib.vs.compare_space_atom_3735,nc_3736) :=
case s_3732 of {
| PureClause =>
let y_3737 := nil() in
halt y_3737
| PosSpaceClause =>
let sigma1_3738 := proj_2 134 s_3732 in
case nc_3736 of {
| PureClause =>
let y_3739 := nil() in
halt y_3739
| PosSpaceClause =>
let y_3740 := nil() in
halt y_3740
| NegSpaceClause =>
let gamma'_3741 := proj_0 135 nc_3736 in
let sigma2_3742 := proj_1 135 nc_3736 in
let delta'_3743 := proj_2 135 nc_3736 in
let y_3744 := nil() in
let env_3745 := con_930(CertiCoq.Benchmarks.lib.vs.compare_space_atom_3735,y_3733) in
let l0_3746 := app unfolding1'_uncurried_uncurried_312<104>(env_3745,sigma2_3742,sigma1_3738,y_3744) in
let env_3747 := con_938(gamma'_3741,delta'_3743,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_3734,y_3733) in
let build_clause_clo_3748 := con_15(build_clause_314,env_3747) in
map_known_133<19>(l0_3746,build_clause_clo_3748)
}
| NegSpaceClause =>
let y_3750 := nil() in
halt y_3750
}
fun unfolding1'_uncurried_uncurried_312<104>(env_3751,sigma2_3752,sigma1_3753,sigma0_3754) :=
case sigma2_3752 of {
| nil =>
let y_3755 := nil() in
halt y_3755
| cons =>
let a_3756 := proj_0 149 sigma2_3752 in
let sigma2'_3757 := proj_1 149 sigma2_3752 in
case a_3756 of {
| Next =>
let y_3758 := cons(a_3756,sigma0_3754) in
unfolding1'_uncurried_uncurried_312<104>(env_3751,sigma2'_3757,sigma1_3753,y_3758)
| Lseg =>
let x_3759 := proj_0 137 a_3756 in
let z_3760 := proj_1 137 a_3756 in
case x_3759 of {
| Nil =>
let y_3761 := cons(a_3756,sigma0_3754) in
unfolding1'_uncurried_uncurried_312<104>(env_3751,sigma2'_3757,sigma1_3753,y_3761)
| Var =>
let x'_3762 := proj_0 143 x_3759 in
let y_proj_3763 := proj_1 930 env_3751 in
let env_3764 := con_931(y_proj_3763) in
let y_3765 := app next_in_dom1_uncurried_uncurried_313<104>(env_3764,sigma1_3753,z_3760,x'_3762) in
case y_3765 of {
| true =>
let y_3766 := Eqv(x_3759,z_3760) in
let y_3767 := con_99() in
let CertiCoq.Benchmarks.lib.vs.compare_space_atom_proj_3768 := proj_0 930 env_3751 in
let env_3769 := con_617(CertiCoq.Benchmarks.lib.vs.compare_space_atom_proj_3768,y_3767) in
let y_wrapper_clo_3770 := con_15(y_wrapper_223,env_3769) in
let y_3771 := Next(x_3759,z_3760) in
let y_3773 := app rev_known_181<313>(sigma0_3754) in
let y_3775 := app app_uncurried_known_143<19>(sigma2'_3757,y_3773) in
let y_3778 := app insert_uncurried_uncurried_uncurried_known_219<4>(y_3775,y_3771,y_wrapper_clo_3770) in
let y_3779 := pair(y_3766,y_3778) in
let y_3780 := Lseg(x_3759,z_3760) in
let y_3781 := cons(y_3780,sigma0_3754) in
let y_3782 := app unfolding1'_uncurried_uncurried_312<104>(env_3751,sigma2'_3757,sigma1_3753,y_3781) in
let y_3783 := cons(y_3779,y_3782) in
halt y_3783
| false =>
let y_3784 := Lseg(x_3759,z_3760) in
let y_3785 := cons(y_3784,sigma0_3754) in
unfolding1'_uncurried_uncurried_312<104>(env_3751,sigma2'_3757,sigma1_3753,y_3785)
}
}
}
}
fun next_in_dom1_uncurried_uncurried_313<104>(env_3786,sc_3787,y_3788,x_3789) :=
case sc_3787 of {
| nil =>
let y_3790 := false() in
halt y_3790
| cons =>
let s_3791 := proj_0 149 sc_3787 in
let sc'_3792 := proj_1 149 sc_3787 in
case s_3791 of {
| Next =>
let e_3793 := proj_0 136 s_3791 in
let y'_3794 := proj_1 136 s_3791 in
case e_3793 of {
| Nil =>
next_in_dom1_uncurried_uncurried_313<104>(env_3786,sc'_3792,y_3788,x_3789)
| Var =>
let x'_3795 := proj_0 143 e_3793 in
let y_3797 := app F_known_158<308>(x_3789) in
let y_code_3798 := proj_0 15 y_3797 in
let y_env_3799 := proj_1 15 y_3797 in
let y_3800 := app y_code_3798<3>(y_env_3799,x'_3795) in
case y_3800 of {
| left =>
let y_proj_3802 := proj_0 931 env_3786 in
let y_3803 := app CertiCoq.Benchmarks.lib.vs.expr_eq_uncurried_known_187<4>(y'_3794,y_3788,y_proj_3802) in
case y_3803 of {
| true =>
let y_3804 := true() in
halt y_3804
| false =>
next_in_dom1_uncurried_uncurried_313<104>(env_3786,sc'_3792,y_3788,x_3789)
}
| right =>
next_in_dom1_uncurried_uncurried_313<104>(env_3786,sc'_3792,y_3788,x_3789)
}
}
| Lseg =>
next_in_dom1_uncurried_uncurried_313<104>(env_3786,sc'_3792,y_3788,x_3789)
}
}
fun build_clause_314<3>(env_3805,p_3806) :=
case p_3806 of {
| pair =>
let atm_3807 := proj_0 147 p_3806 in
let sigma2'_3808 := proj_1 147 p_3806 in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_proj_3809 := proj_2 938 env_3805 in
let y_proj_3811 := proj_3 938 env_3805 in
let y_3812 := app CertiCoq.Benchmarks.lib.vs.order_eqv_pure_atom_known_137<19>(atm_3807,y_proj_3811) in
let delta'_proj_3813 := proj_1 938 env_3805 in
let y_3816 := app insert_uniq_uncurried_uncurried_uncurried_known_135<4>(delta'_proj_3813,y_3812,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_proj_3809) in
let gamma'_proj_3817 := proj_0 938 env_3805 in
let y_3818 := NegSpaceClause(gamma'_proj_3817,sigma2'_3808,y_3816) in
halt y_3818
}
fun f_case_known_315<17>(s_3820,y_3821,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_3822,CertiCoq.Benchmarks.lib.vs.compare_space_atom_3823,nc_3824) :=
case s_3820 of {
| PureClause =>
let y_3825 := nil() in
halt y_3825
| PosSpaceClause =>
let sigma1_3826 := proj_2 134 s_3820 in
case nc_3824 of {
| PureClause =>
let y_3827 := nil() in
halt y_3827
| PosSpaceClause =>
let y_3828 := nil() in
halt y_3828
| NegSpaceClause =>
let gamma'_3829 := proj_0 135 nc_3824 in
let sigma2_3830 := proj_1 135 nc_3824 in
let delta'_3831 := proj_2 135 nc_3824 in
let y_3832 := nil() in
let env_3833 := con_944(CertiCoq.Benchmarks.lib.vs.compare_space_atom_3823,y_3821) in
let l0_3834 := app unfolding2'_uncurried_uncurried_316<104>(env_3833,sigma2_3830,sigma1_3826,y_3832) in
let env_3835 := con_954(gamma'_3829,delta'_3831,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_3822,y_3821) in
let build_clause_clo_3836 := con_15(build_clause_318,env_3835) in
map_known_133<19>(l0_3834,build_clause_clo_3836)
}
| NegSpaceClause =>
let y_3838 := nil() in
halt y_3838
}
fun unfolding2'_uncurried_uncurried_316<104>(env_3839,sigma2_3840,sigma1_3841,sigma0_3842) :=
case sigma2_3840 of {
| nil =>
let y_3843 := nil() in
halt y_3843
| cons =>
let a_3844 := proj_0 149 sigma2_3840 in
let sigma2'_3845 := proj_1 149 sigma2_3840 in
case a_3844 of {
| Next =>
let y_3846 := cons(a_3844,sigma0_3842) in
unfolding2'_uncurried_uncurried_316<104>(env_3839,sigma2'_3845,sigma1_3841,y_3846)
| Lseg =>
let x_3847 := proj_0 137 a_3844 in
let z_3848 := proj_1 137 a_3844 in
case x_3847 of {
| Nil =>
let y_3849 := cons(a_3844,sigma0_3842) in
unfolding2'_uncurried_uncurried_316<104>(env_3839,sigma2'_3845,sigma1_3841,y_3849)
| Var =>
let x'_3850 := proj_0 143 x_3847 in
let y_proj_3851 := proj_1 944 env_3839 in
let env_3852 := con_945(y_proj_3851) in
let y_3853 := app next_in_dom2_uncurried_uncurried_317<104>(env_3852,sigma1_3841,z_3848,x'_3850) in
case y_3853 of {
| Some =>
let y_3854 := proj_0 101 y_3853 in
let y_3855 := Eqv(x_3847,z_3848) in
let y_3856 := con_99() in
let CertiCoq.Benchmarks.lib.vs.compare_space_atom_proj_3857 := proj_0 944 env_3839 in
let env_3858 := con_617(CertiCoq.Benchmarks.lib.vs.compare_space_atom_proj_3857,y_3856) in
let y_wrapper_clo_3859 := con_15(y_wrapper_223,env_3858) in
let y_3860 := Next(x_3847,y_3854) in
let y_3861 := con_99() in
let CertiCoq.Benchmarks.lib.vs.compare_space_atom_proj_3862 := proj_0 944 env_3839 in
let env_3863 := con_617(CertiCoq.Benchmarks.lib.vs.compare_space_atom_proj_3862,y_3861) in
let y_wrapper_clo_3864 := con_15(y_wrapper_223,env_3863) in
let y_3865 := Lseg(y_3854,z_3848) in
let y_3867 := app rev_known_181<313>(sigma0_3842) in
let y_3869 := app app_uncurried_known_143<19>(sigma2'_3845,y_3867) in
let y_3872 := app insert_uncurried_uncurried_uncurried_known_219<4>(y_3869,y_3865,y_wrapper_clo_3864) in
let y_3875 := app insert_uncurried_uncurried_uncurried_known_219<4>(y_3872,y_3860,y_wrapper_clo_3859) in
let y_3876 := pair(y_3855,y_3875) in
let y_3877 := Lseg(x_3847,z_3848) in
let y_3878 := cons(y_3877,sigma0_3842) in
let y_3879 := app unfolding2'_uncurried_uncurried_316<104>(env_3839,sigma2'_3845,sigma1_3841,y_3878) in
let y_3880 := cons(y_3876,y_3879) in
halt y_3880
| None =>
let y_3881 := Lseg(x_3847,z_3848) in
let y_3882 := cons(y_3881,sigma0_3842) in
unfolding2'_uncurried_uncurried_316<104>(env_3839,sigma2'_3845,sigma1_3841,y_3882)
}
}
}
}
fun next_in_dom2_uncurried_uncurried_317<104>(env_3883,sc_3884,y_3885,x_3886) :=
case sc_3884 of {
| nil =>
let y_3887 := None() in
halt y_3887
| cons =>
let s_3888 := proj_0 149 sc_3884 in
let sc'_3889 := proj_1 149 sc_3884 in
case s_3888 of {
| Next =>
let e_3890 := proj_0 136 s_3888 in
let y'_3891 := proj_1 136 s_3888 in
case e_3890 of {
| Nil =>
next_in_dom2_uncurried_uncurried_317<104>(env_3883,sc'_3889,y_3885,x_3886)
| Var =>
let x'_3892 := proj_0 143 e_3890 in
let y_3894 := app F_known_158<308>(x_3886) in
let y_code_3895 := proj_0 15 y_3894 in
let y_env_3896 := proj_1 15 y_3894 in
let y_3897 := app y_code_3895<3>(y_env_3896,x'_3892) in
case y_3897 of {
| left =>
let y_proj_3899 := proj_0 945 env_3883 in
let y_3900 := app CertiCoq.Benchmarks.lib.vs.expr_eq_uncurried_known_187<4>(y'_3891,y_3885,y_proj_3899) in
case y_3900 of {
| true =>
next_in_dom2_uncurried_uncurried_317<104>(env_3883,sc'_3889,y_3885,x_3886)
| false =>
let y_3901 := Some(y'_3891) in
halt y_3901
}
| right =>
next_in_dom2_uncurried_uncurried_317<104>(env_3883,sc'_3889,y_3885,x_3886)
}
}
| Lseg =>
next_in_dom2_uncurried_uncurried_317<104>(env_3883,sc'_3889,y_3885,x_3886)
}
}
fun build_clause_318<3>(env_3902,p_3903) :=
case p_3903 of {
| pair =>
let atm_3904 := proj_0 147 p_3903 in
let sigma2'_3905 := proj_1 147 p_3903 in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_proj_3906 := proj_2 954 env_3902 in
let y_proj_3908 := proj_3 954 env_3902 in
let y_3909 := app CertiCoq.Benchmarks.lib.vs.order_eqv_pure_atom_known_137<19>(atm_3904,y_proj_3908) in
let delta'_proj_3910 := proj_1 954 env_3902 in
let y_3913 := app insert_uniq_uncurried_uncurried_uncurried_known_135<4>(delta'_proj_3910,y_3909,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_proj_3906) in
let gamma'_proj_3914 := proj_0 954 env_3902 in
let y_3915 := NegSpaceClause(gamma'_proj_3914,sigma2'_3905,y_3913) in
halt y_3915
}
fun f_case_known_319<104>(s_3917,y_3918,CertiCoq.Benchmarks.lib.vs.compare_space_atom_3919,nc_3920) :=
case s_3917 of {
| PureClause =>
let y_3921 := nil() in
halt y_3921
| PosSpaceClause =>
let sigma1_3922 := proj_2 134 s_3917 in
case nc_3920 of {
| PureClause =>
let y_3923 := nil() in
halt y_3923
| PosSpaceClause =>
let y_3924 := nil() in
halt y_3924
| NegSpaceClause =>
let gamma'_3925 := proj_0 135 nc_3920 in
let sigma2_3926 := proj_1 135 nc_3920 in
let delta'_3927 := proj_2 135 nc_3920 in
let y_3928 := nil() in
let env_3929 := con_960(CertiCoq.Benchmarks.lib.vs.compare_space_atom_3919,y_3918) in
let l0_3930 := app unfolding3'_uncurried_uncurried_320<104>(env_3929,sigma2_3926,sigma1_3922,y_3928) in
let env_3931 := con_969(gamma'_3925,delta'_3927) in
let build_clause_wrapper_clo_3932 := con_15(build_clause_wrapper_321,env_3931) in
map_known_133<19>(l0_3930,build_clause_wrapper_clo_3932)
}
| NegSpaceClause =>
let y_3934 := nil() in
halt y_3934
}
fun unfolding3'_uncurried_uncurried_320<104>(env_3935,sigma2_3936,sigma1_3937,sigma0_3938) :=
case sigma2_3936 of {
| nil =>
let y_3939 := nil() in
halt y_3939
| cons =>
let a_3940 := proj_0 149 sigma2_3936 in
let sigma2'_3941 := proj_1 149 sigma2_3936 in
case a_3940 of {
| Next =>
let y_3942 := cons(a_3940,sigma0_3938) in
unfolding3'_uncurried_uncurried_320<104>(env_3935,sigma2'_3941,sigma1_3937,y_3942)
| Lseg =>
let x_3943 := proj_0 137 a_3940 in
let e_3944 := proj_1 137 a_3940 in
case x_3943 of {
| Nil =>
let y_3945 := cons(a_3940,sigma0_3938) in
unfolding3'_uncurried_uncurried_320<104>(env_3935,sigma2'_3941,sigma1_3937,y_3945)
| Var =>
let x'_3946 := proj_0 143 x_3943 in
case e_3944 of {
| Nil =>
let y_3947 := Nil() in
let y_proj_3948 := proj_1 960 env_3935 in
let env_3949 := con_906(y_proj_3948) in
let y_3950 := app lseg_in_dom2_uncurried_uncurried_302<104>(env_3949,sigma1_3937,y_3947,x'_3946) in
case y_3950 of {
| Some =>
let y_3951 := proj_0 101 y_3950 in
let y_3952 := con_99() in
let CertiCoq.Benchmarks.lib.vs.compare_space_atom_proj_3953 := proj_0 960 env_3935 in
let env_3954 := con_617(CertiCoq.Benchmarks.lib.vs.compare_space_atom_proj_3953,y_3952) in
let y_wrapper_clo_3955 := con_15(y_wrapper_223,env_3954) in
let y_3956 := Lseg(x_3943,y_3951) in
let y_3957 := con_99() in
let CertiCoq.Benchmarks.lib.vs.compare_space_atom_proj_3958 := proj_0 960 env_3935 in
let env_3959 := con_617(CertiCoq.Benchmarks.lib.vs.compare_space_atom_proj_3958,y_3957) in
let y_wrapper_clo_3960 := con_15(y_wrapper_223,env_3959) in
let y_3961 := Nil() in
let y_3962 := Lseg(y_3951,y_3961) in
let y_3964 := app rev_known_181<313>(sigma0_3938) in
let y_3966 := app app_uncurried_known_143<19>(sigma2'_3941,y_3964) in
let y_3969 := app insert_uncurried_uncurried_uncurried_known_219<4>(y_3966,y_3962,y_wrapper_clo_3960) in
let y_3972 := app insert_uncurried_uncurried_uncurried_known_219<4>(y_3969,y_3956,y_wrapper_clo_3955) in
let y_3973 := Nil() in
let y_3974 := Lseg(x_3943,y_3973) in
let y_3975 := cons(y_3974,sigma0_3938) in
let y_3976 := app unfolding3'_uncurried_uncurried_320<104>(env_3935,sigma2'_3941,sigma1_3937,y_3975) in
let y_3977 := cons(y_3972,y_3976) in
halt y_3977
| None =>
let y_3978 := Nil() in
let y_3979 := Lseg(x_3943,y_3978) in
let y_3980 := cons(y_3979,sigma0_3938) in
unfolding3'_uncurried_uncurried_320<104>(env_3935,sigma2'_3941,sigma1_3937,y_3980)
}
| Var =>
let y_3981 := cons(a_3940,sigma0_3938) in
unfolding3'_uncurried_uncurried_320<104>(env_3935,sigma2'_3941,sigma1_3937,y_3981)
}
}
}
}
fun build_clause_wrapper_321<3>(env_3982,sigma2'_3983) :=
let gamma'_proj_3984 := proj_0 969 env_3982 in
let delta'_proj_3985 := proj_1 969 env_3982 in
let y_3986 := NegSpaceClause(gamma'_proj_3984,sigma2'_3983,delta'_proj_3985) in
halt y_3986
fun f_case_322<19>(env_3987,s_3988) :=
case s_3988 of {
| PureClause =>
let y_3989 := nil() in
halt y_3989
| PosSpaceClause =>
let gamma_3990 := proj_0 134 s_3988 in
let delta_3991 := proj_1 134 s_3988 in
let sigma1_3992 := proj_2 134 s_3988 in
let nc_proj_3993 := proj_1 973 env_3987 in
case nc_proj_3993 of {
| PureClause =>
let y_3994 := nil() in
halt y_3994
| PosSpaceClause =>
let y_3995 := nil() in
halt y_3995
| NegSpaceClause =>
let nc_proj_3996 := proj_1 973 env_3987 in
let gamma'_3997 := proj_0 135 nc_proj_3996 in
let nc_proj_3998 := proj_1 973 env_3987 in
let sigma2_3999 := proj_1 135 nc_proj_3998 in
let nc_proj_4000 := proj_1 973 env_3987 in
let delta'_4001 := proj_2 135 nc_proj_4000 in
let y_4002 := nil() in
let y_proj_4003 := proj_0 973 env_3987 in
let CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_4004 := proj_3 973 env_3987 in
let env_4005 := con_974(y_proj_4003,CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_4004) in
let l0_4006 := app unfolding4NPR'_uncurried_uncurried_323<104>(env_4005,sigma2_3999,sigma1_3992,y_4002) in
let y_4008 := app app_uncurried_known_143<19>(gamma'_3997,gamma_3990) in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_4009 := proj_2 973 env_3987 in
let GG'_4012 := app rsort_uniq_uncurried_uncurried_known_136<19>(y_4008,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_4009) in
let y_4014 := app app_uncurried_known_143<19>(delta'_4001,delta_3991) in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_4015 := proj_2 973 env_3987 in
let DD'_4018 := app rsort_uniq_uncurried_uncurried_known_136<19>(y_4014,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_4015) in
let env_4019 := con_988(GG'_4012,DD'_4018) in
let build_clause_wrapper_clo_4020 := con_15(build_clause_wrapper_324,env_4019) in
map_known_133<19>(l0_4006,build_clause_wrapper_clo_4020)
}
| NegSpaceClause =>
let y_4022 := nil() in
halt y_4022
}
fun unfolding4NPR'_uncurried_uncurried_323<104>(env_4023,sigma2_4024,sigma1_4025,sigma0_4026) :=
case sigma2_4024 of {
| nil =>
let y_4027 := nil() in
halt y_4027
| cons =>
let a_4028 := proj_0 149 sigma2_4024 in
let sigma2'_4029 := proj_1 149 sigma2_4024 in
case a_4028 of {
| Next =>
let y_4030 := cons(a_4028,sigma0_4026) in
unfolding4NPR'_uncurried_uncurried_323<104>(env_4023,sigma2'_4029,sigma1_4025,y_4030)
| Lseg =>
let x_4031 := proj_0 137 a_4028 in
let z_4032 := proj_1 137 a_4028 in
case x_4031 of {
| Nil =>
let y_4033 := cons(a_4028,sigma0_4026) in
unfolding4NPR'_uncurried_uncurried_323<104>(env_4023,sigma2'_4029,sigma1_4025,y_4033)
| Var =>
let x'_4034 := proj_0 143 x_4031 in
case z_4032 of {
| Nil =>
let y_4035 := cons(a_4028,sigma0_4026) in
unfolding4NPR'_uncurried_uncurried_323<104>(env_4023,sigma2'_4029,sigma1_4025,y_4035)
| Var =>
let z'_4036 := proj_0 143 z_4032 in
let y_proj_4037 := proj_0 974 env_4023 in
let env_4038 := con_906(y_proj_4037) in
let y_4039 := app lseg_in_dom2_uncurried_uncurried_302<104>(env_4038,sigma1_4025,z_4032,x'_4034) in
case y_4039 of {
| Some =>
let y_4040 := proj_0 101 y_4039 in
let y_4042 := app next_in_dom_uncurried_known_277<19>(sigma1_4025,z'_4036) in
case y_4042 of {
| true =>
let y_4043 := con_99() in
let CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_4044 := proj_1 974 env_4023 in
let env_4045 := con_617(CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_4044,y_4043) in
let y_wrapper_clo_4046 := con_15(y_wrapper_223,env_4045) in
let y_4047 := Lseg(x_4031,y_4040) in
let y_4048 := con_99() in
let CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_4049 := proj_1 974 env_4023 in
let env_4050 := con_617(CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_4049,y_4048) in
let y_wrapper_clo_4051 := con_15(y_wrapper_223,env_4050) in
let y_4052 := Lseg(y_4040,z_4032) in
let y_4054 := app rev_known_181<313>(sigma0_4026) in
let y_4056 := app app_uncurried_known_143<19>(sigma2'_4029,y_4054) in
let y_4059 := app insert_uncurried_uncurried_uncurried_known_219<4>(y_4056,y_4052,y_wrapper_clo_4051) in
let y_4062 := app insert_uncurried_uncurried_uncurried_known_219<4>(y_4059,y_4047,y_wrapper_clo_4046) in
let y_4063 := Lseg(x_4031,z_4032) in
let y_4064 := cons(y_4063,sigma0_4026) in
let y_4065 := app unfolding4NPR'_uncurried_uncurried_323<104>(env_4023,sigma2'_4029,sigma1_4025,y_4064) in
let y_4066 := cons(y_4062,y_4065) in
halt y_4066
| false =>
let y_4067 := Lseg(x_4031,z_4032) in
let y_4068 := cons(y_4067,sigma0_4026) in
unfolding4NPR'_uncurried_uncurried_323<104>(env_4023,sigma2'_4029,sigma1_4025,y_4068)
}
| None =>
let y_4069 := Lseg(x_4031,z_4032) in
let y_4070 := cons(y_4069,sigma0_4026) in
unfolding4NPR'_uncurried_uncurried_323<104>(env_4023,sigma2'_4029,sigma1_4025,y_4070)
}
}
}
}
}
fun build_clause_wrapper_324<3>(env_4071,sigma2'_4072) :=
let GG'_proj_4073 := proj_0 988 env_4071 in
let DD'_proj_4074 := proj_1 988 env_4071 in
let y_4075 := NegSpaceClause(GG'_proj_4073,sigma2'_4072,DD'_proj_4074) in
halt y_4075
fun f_case_325<19>(env_4076,s_4077) :=
case s_4077 of {
| PureClause =>
let y_4078 := nil() in
halt y_4078
| PosSpaceClause =>
let gamma_4079 := proj_0 134 s_4077 in
let delta_4080 := proj_1 134 s_4077 in
let sigma1_4081 := proj_2 134 s_4077 in
let nc_proj_4082 := proj_1 992 env_4076 in
case nc_proj_4082 of {
| PureClause =>
let y_4083 := nil() in
halt y_4083
| PosSpaceClause =>
let y_4084 := nil() in
halt y_4084
| NegSpaceClause =>
let nc_proj_4085 := proj_1 992 env_4076 in
let gamma'_4086 := proj_0 135 nc_proj_4085 in
let nc_proj_4087 := proj_1 992 env_4076 in
let sigma2_4088 := proj_1 135 nc_proj_4087 in
let nc_proj_4089 := proj_1 992 env_4076 in
let delta'_4090 := proj_2 135 nc_proj_4089 in
let y_4091 := nil() in
let y_proj_4092 := proj_0 992 env_4076 in
let CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_4093 := proj_3 992 env_4076 in
let env_4094 := con_993(y_proj_4092,CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_4093) in
let l0_4095 := app unfolding6NPR'_uncurried_uncurried_326<104>(env_4094,sigma2_4088,sigma1_4081,y_4091) in
let y_4097 := app app_uncurried_known_143<19>(gamma'_4086,gamma_4079) in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_4098 := proj_2 992 env_4076 in
let GG'_4101 := app rsort_uniq_uncurried_uncurried_known_136<19>(y_4097,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_4098) in
let y_4103 := app app_uncurried_known_143<19>(delta'_4090,delta_4080) in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_4104 := proj_2 992 env_4076 in
let DD'_4107 := app rsort_uniq_uncurried_uncurried_known_136<19>(y_4103,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_4104) in
let y_proj_4108 := proj_0 992 env_4076 in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_4109 := proj_2 992 env_4076 in
let env_4110 := con_1010(y_proj_4108,GG'_4101,DD'_4107,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_4109) in
let build_clause_clo_4111 := con_15(build_clause_328,env_4110) in
map_known_133<19>(l0_4095,build_clause_clo_4111)
}
| NegSpaceClause =>
let y_4113 := nil() in
halt y_4113
}
fun unfolding6NPR'_uncurried_uncurried_326<104>(env_4114,sigma2_4115,sigma1_4116,sigma0_4117) :=
case sigma2_4115 of {
| nil =>
let y_4118 := nil() in
halt y_4118
| cons =>
let a_4119 := proj_0 149 sigma2_4115 in
let sigma2'_4120 := proj_1 149 sigma2_4115 in
case a_4119 of {
| Next =>
let y_4121 := cons(a_4119,sigma0_4117) in
unfolding6NPR'_uncurried_uncurried_326<104>(env_4114,sigma2'_4120,sigma1_4116,y_4121)
| Lseg =>
let x_4122 := proj_0 137 a_4119 in
let z_4123 := proj_1 137 a_4119 in
case x_4122 of {
| Nil =>
let y_4124 := cons(a_4119,sigma0_4117) in
unfolding6NPR'_uncurried_uncurried_326<104>(env_4114,sigma2'_4120,sigma1_4116,y_4124)
| Var =>
let x'_4125 := proj_0 143 x_4122 in
case z_4123 of {
| Nil =>
let y_4126 := cons(a_4119,sigma0_4117) in
unfolding6NPR'_uncurried_uncurried_326<104>(env_4114,sigma2'_4120,sigma1_4116,y_4126)
| Var =>
let z'_4127 := proj_0 143 z_4123 in
let y_4129 := app F_known_158<308>(x'_4125) in
let y_code_4130 := proj_0 15 y_4129 in
let y_env_4131 := proj_1 15 y_4129 in
let y_4132 := app y_code_4130<3>(y_env_4131,z'_4127) in
case y_4132 of {
| left =>
unfolding6NPR'_uncurried_uncurried_326<104>(env_4114,sigma2'_4120,sigma1_4116,sigma0_4117)
| right =>
let y_proj_4133 := proj_0 993 env_4114 in
let env_4134 := con_906(y_proj_4133) in
let y_4135 := app lseg_in_dom2_uncurried_uncurried_302<104>(env_4134,sigma1_4116,z_4123,x'_4125) in
case y_4135 of {
| Some =>
let y_4136 := proj_0 101 y_4135 in
let y_proj_4137 := proj_0 993 env_4114 in
let env_4138 := con_806(y_proj_4137) in
let atms_4139 := app lseg_in_dom_atoms_uncurried_278<4>(env_4138,sigma1_4116,z'_4127) in
let CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_4140 := proj_1 993 env_4114 in
let env_4141 := con_997(sigma0_4117,sigma2'_4120,x_4122,z_4123,y_4136,CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_4140) in
let build_res_clo_4142 := con_15(build_res_327,env_4141) in
let y_4144 := app map_known_133<19>(atms_4139,build_res_clo_4142) in
let y_4145 := Lseg(x_4122,z_4123) in
let y_4146 := cons(y_4145,sigma0_4117) in
let y_4147 := app unfolding6NPR'_uncurried_uncurried_326<104>(env_4114,sigma2'_4120,sigma1_4116,y_4146) in
app_uncurried_known_143<19>(y_4147,y_4144)
| None =>
let y_4149 := Lseg(x_4122,z_4123) in
let y_4150 := cons(y_4149,sigma0_4117) in
unfolding6NPR'_uncurried_uncurried_326<104>(env_4114,sigma2'_4120,sigma1_4116,y_4150)
}
}
}
}
}
}
fun build_res_327<3>(env_4151,atm_4152) :=
let y_4153 := con_99() in
let CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_4154 := proj_5 997 env_4151 in
let env_4155 := con_617(CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_4154,y_4153) in
let y_wrapper_clo_4156 := con_15(y_wrapper_223,env_4155) in
let x_proj_4157 := proj_2 997 env_4151 in
let y_proj_4158 := proj_4 997 env_4151 in
let y_4159 := Lseg(x_proj_4157,y_proj_4158) in
let y_4160 := con_99() in
let CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_4161 := proj_5 997 env_4151 in
let env_4162 := con_617(CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_proj_4161,y_4160) in
let y_wrapper_clo_4163 := con_15(y_wrapper_223,env_4162) in
let y_proj_4164 := proj_4 997 env_4151 in
let z_proj_4165 := proj_3 997 env_4151 in
let y_4166 := Lseg(y_proj_4164,z_proj_4165) in
let sigma0_proj_4167 := proj_0 997 env_4151 in
let y_4169 := app rev_known_181<313>(sigma0_proj_4167) in
let sigma2'_proj_4170 := proj_1 997 env_4151 in
let y_4172 := app app_uncurried_known_143<19>(sigma2'_proj_4170,y_4169) in
let y_4175 := app insert_uncurried_uncurried_uncurried_known_219<4>(y_4172,y_4166,y_wrapper_clo_4163) in
let y_4178 := app insert_uncurried_uncurried_uncurried_known_219<4>(y_4175,y_4159,y_wrapper_clo_4156) in
let y_4179 := pair(atm_4152,y_4178) in
halt y_4179
fun build_clause_328<3>(env_4180,p_4181) :=
case p_4181 of {
| pair =>
let atm_4182 := proj_0 147 p_4181 in
let sigma2'_4183 := proj_1 147 p_4181 in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_4184 := proj_3 1010 env_4180 in
let y_proj_4186 := proj_0 1010 env_4180 in
let y_4187 := app CertiCoq.Benchmarks.lib.vs.order_eqv_pure_atom_known_137<19>(atm_4182,y_proj_4186) in
let DD'_proj_4188 := proj_2 1010 env_4180 in
let y_4191 := app insert_uniq_uncurried_uncurried_uncurried_known_135<4>(DD'_proj_4188,y_4187,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_4184) in
let GG'_proj_4192 := proj_1 1010 env_4180 in
let y_4193 := NegSpaceClause(GG'_proj_4192,sigma2'_4183,y_4191) in
halt y_4193
}
fun add_list_to_set_uncurried_329<4>(env_4194,s_4195,l_4196) :=
case l_4196 of {
| nil =>
let y_4197 := None() in
halt y_4197
| cons =>
let x_4198 := proj_0 149 l_4196 in
let xs_4199 := proj_1 149 l_4196 in
let y_4202 := app CertiCoq.Benchmarks.lib.vs.M.this_known_127<304>(s_4195) in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_4204 := proj_0 1017 env_4194 in
let y_4205 := app mem_uncurried_known_331<4>(y_4202,x_4198,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_4204) in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_4206 := proj_0 1017 env_4194 in
let y_4207 := app f_case_known_330<104>(y_4205,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_4206,s_4195,x_4198) in
case y_4207 of {
| Some =>
let s'_4208 := proj_0 101 y_4207 in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_4209 := proj_0 1017 env_4194 in
let env_4210 := con_1030(CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_4209) in
let y_wrapper_clo_4211 := con_15(y_wrapper_333,env_4210) in
let env_4212 := con_186(y_wrapper_clo_4211) in
let y_4213 := app fold_left_uncurried_106<4>(env_4212,s'_4208,xs_4199) in
let y_4214 := Some(y_4213) in
halt y_4214
| None =>
add_list_to_set_uncurried_329<4>(env_4194,s_4195,xs_4199)
}
}
fun f_case_known_330<104>(s_4216,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_4217,s_4218,x_4219) :=
case s_4216 of {
| true =>
let y_4220 := None() in
halt y_4220
| false =>
let y_4222 := app CertiCoq.Benchmarks.lib.vs.M.this_known_127<304>(s_4218) in
let y_4224 := app CertiCoq.Benchmarks.lib.vs.M.Raw.add_uncurried_known_124<4>(y_4222,x_4219,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_4217) in
let y_4225 := con_99() in
let y_4226 := Mkt(y_4224,y_4225) in
let y_4227 := Some(y_4226) in
halt y_4227
}
fun mem_uncurried_known_331<4>(t_4229,x_4230,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_4231) :=
case t_4229 of {
| Leaf =>
let y_4232 := false() in
halt y_4232
| Node =>
let l_4233 := proj_1 121 t_4229 in
let k_4234 := proj_2 121 t_4229 in
let r_4235 := proj_3 121 t_4229 in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_code_4236 := proj_0 15 CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_4231 in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_env_4237 := proj_1 15 CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_4231 in
let y_4238 := app CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_code_4236<4>(CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_env_4237,k_4234,x_4230) in
case y_4238 of {
| Eq =>
let y_4239 := true() in
halt y_4239
| Lt =>
mem_uncurried_known_331<4>(l_4233,x_4230,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_4231)
| Gt =>
mem_uncurried_known_331<4>(r_4235,x_4230,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_4231)
}
}
fun y_wrapper_332<3>(env_4240,y_4241) :=
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_4242 := proj_1 1028 env_4240 in
let x_proj_4243 := proj_0 1028 env_4240 in
let y_4245 := app CertiCoq.Benchmarks.lib.vs.M.this_known_127<304>(x_proj_4243) in
let y_4247 := app CertiCoq.Benchmarks.lib.vs.M.Raw.add_uncurried_known_124<4>(y_4245,y_4241,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_4242) in
let y_4248 := con_99() in
let y_4249 := Mkt(y_4247,y_4248) in
halt y_4249
fun y_wrapper_333<3>(env_4250,x_4251) :=
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_4252 := proj_0 1030 env_4250 in
let env_4253 := con_1028(x_4251,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_4252) in
let y_wrapper_clo_4254 := con_15(y_wrapper_332,env_4253) in
halt y_wrapper_clo_4254
fun loop_uncurried_334<4>(env_4255,res_4256,n_4257) :=
case n_4257 of {
| O =>
case res_4256 of {
| Valid =>
let y_4258 := true() in
halt y_4258
| C_example =>
let y_4259 := false() in
halt y_4259
| Aborted =>
let y_4260 := false() in
halt y_4260
}
| S =>
let n_4261 := proj_0 151 n_4257 in
let CertiCoq.Benchmarks.lib.vs.var2_proj_4262 := proj_0 1036 env_4255 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_4263 := proj_1 1036 env_4255 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_4264 := proj_2 1036 env_4255 in
let y_proj_4265 := proj_3 1036 env_4255 in
let CertiCoq.Benchmarks.lib.vs.mk_pureL_proj_4266 := proj_9 1036 env_4255 in
let env_4267 := con_1037(CertiCoq.Benchmarks.lib.vs.var2_proj_4262,CertiCoq.Benchmarks.lib.vs.var1_proj_4263,CertiCoq.Benchmarks.lib.vs.var0_proj_4264,y_proj_4265,CertiCoq.Benchmarks.lib.vs.mk_pureL_proj_4266) in
let CertiCoq.Benchmarks.lib.vs.example_ent_proj_4268 := proj_23 1036 env_4255 in
let y_4269 := app f_case_335<19>(env_4267,CertiCoq.Benchmarks.lib.vs.example_ent_proj_4268) in
let CertiCoq.Benchmarks.lib.vs.order_eqv_clause_proj_4270 := proj_8 1036 env_4255 in
let y_4272 := app map_known_133<19>(y_4269,CertiCoq.Benchmarks.lib.vs.order_eqv_clause_proj_4270) in
let CertiCoq.Benchmarks.lib.vs.VeriStar.pureb_wrapperbogus_env_4273 := con_1047() in
let CertiCoq.Benchmarks.lib.vs.VeriStar.pureb_wrapper_clo_4274 := con_15(CertiCoq.Benchmarks.lib.vs.VeriStar.pureb_wrapper_132,CertiCoq.Benchmarks.lib.vs.VeriStar.pureb_wrapperbogus_env_4273) in
let y_4276 := app filter_known_130<19>(y_4272,CertiCoq.Benchmarks.lib.vs.VeriStar.pureb_wrapper_clo_4274) in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_4277 := proj_5 1036 env_4255 in
let CertiCoq.Benchmarks.lib.vs.M.empty_proj_4278 := proj_6 1036 env_4255 in
let env_4279 := con_261(CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_4277) in
let y_wrapper_clo_4280 := con_15(y_wrapper_129,env_4279) in
let env_4281 := con_186(y_wrapper_clo_4280) in
let s_4282 := app fold_left_uncurried_106<4>(env_4281,CertiCoq.Benchmarks.lib.vs.M.empty_proj_4278,y_4276) in
let CertiCoq.Benchmarks.lib.vs.var2_proj_4283 := proj_0 1036 env_4255 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_4284 := proj_1 1036 env_4255 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_4285 := proj_2 1036 env_4255 in
let y_proj_4286 := proj_3 1036 env_4255 in
let CertiCoq.Benchmarks.lib.vs.compare_clause_proj_4287 := proj_4 1036 env_4255 in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_4288 := proj_5 1036 env_4255 in
let CertiCoq.Benchmarks.lib.vs.M.empty_proj_4289 := proj_6 1036 env_4255 in
let y_proj_4290 := proj_10 1036 env_4255 in
let y_proj_4291 := proj_11 1036 env_4255 in
let CertiCoq.Benchmarks.lib.vs.Superposition.delete_resolved_proj_4292 := proj_12 1036 env_4255 in
let CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_proj_4293 := proj_13 1036 env_4255 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_4294 := proj_14 1036 env_4255 in
let CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_4295 := proj_15 1036 env_4255 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_4296 := proj_16 1036 env_4255 in
let CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_proj_4297 := proj_17 1036 env_4255 in
let CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_4298 := proj_18 1036 env_4255 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_4299 := proj_19 1036 env_4255 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_4300 := proj_20 1036 env_4255 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_proj_4301 := proj_21 1036 env_4255 in
let y_proj_4302 := proj_22 1036 env_4255 in
let CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_4303 := proj_24 1036 env_4255 in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_4304 := proj_25 1036 env_4255 in
let CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_proj_4305 := proj_26 1036 env_4255 in
let y_wrapper_proj_4306 := proj_27 1036 env_4255 in
let CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_4307 := proj_28 1036 env_4255 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_4308 := proj_29 1036 env_4255 in
let env_4309 := con_1049(CertiCoq.Benchmarks.lib.vs.var2_proj_4283,CertiCoq.Benchmarks.lib.vs.var1_proj_4284,CertiCoq.Benchmarks.lib.vs.var0_proj_4285,y_proj_4286,CertiCoq.Benchmarks.lib.vs.compare_clause_proj_4287,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_4288,CertiCoq.Benchmarks.lib.vs.M.empty_proj_4289,y_proj_4290,y_proj_4291,CertiCoq.Benchmarks.lib.vs.Superposition.delete_resolved_proj_4292,CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_proj_4293,CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_4294,CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_4295,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_4296,CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_proj_4297,CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_4298,CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_4299,CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_4300,CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_proj_4301,y_proj_4302,s_4282,CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_4303,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_4304,CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_proj_4305,y_wrapper_proj_4306,CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_4307,CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_4308) in
let CertiCoq.Benchmarks.lib.vs.example_ent_proj_4310 := proj_23 1036 env_4255 in
let res_4311 := app f_case_337<19>(env_4309,CertiCoq.Benchmarks.lib.vs.example_ent_proj_4310) in
loop_uncurried_334<4>(env_4255,res_4311,n_4261)
}
fun f_case_335<19>(env_4312,s_4313) :=
case s_4313 of {
| Entailment =>
let a_4314 := proj_0 124 s_4313 in
let a0_4315 := proj_1 124 s_4313 in
case a_4314 of {
| Assertion =>
let pureL_4316 := proj_0 125 a_4314 in
let spaceL_4317 := proj_1 125 a_4314 in
case a0_4315 of {
| Assertion =>
let pureR_4318 := proj_0 125 a0_4315 in
let spaceR_4319 := proj_1 125 a0_4315 in
let y_proj_4320 := proj_3 1037 env_4312 in
let y_4322 := app mk_pureR_known_142<19>(pureR_4318,y_proj_4320) in
case y_4322 of {
| pair =>
let p_4323 := proj_0 147 y_4322 in
let n_4324 := proj_1 147 y_4322 in
let CertiCoq.Benchmarks.lib.vs.mk_pureL_proj_4325 := proj_4 1037 env_4312 in
let y_4327 := app map_known_133<19>(pureL_4316,CertiCoq.Benchmarks.lib.vs.mk_pureL_proj_4325) in
let y_4328 := nil() in
let y_4329 := nil() in
let y_4330 := PosSpaceClause(y_4328,y_4329,spaceL_4317) in
let y_4331 := nil() in
let y_4332 := cons(y_4330,y_4331) in
let CertiCoq.Benchmarks.lib.vs.var2_proj_4333 := proj_0 1037 env_4312 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_4334 := proj_1 1037 env_4312 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_4335 := proj_2 1037 env_4312 in
let env_4336 := con_1042(CertiCoq.Benchmarks.lib.vs.var2_proj_4333,CertiCoq.Benchmarks.lib.vs.var1_proj_4334,CertiCoq.Benchmarks.lib.vs.var0_proj_4335,spaceR_4319,p_4323,n_4324) in
let y_4337 := app f_case_336<19>(env_4336,spaceL_4317) in
let y_4339 := app app_uncurried_known_143<19>(y_4337,y_4332) in
app_uncurried_known_143<19>(y_4339,y_4327)
}
}
}
}
fun f_case_336<19>(env_4341,s_4342) :=
case s_4342 of {
| nil =>
let spaceR_proj_4343 := proj_3 1042 env_4341 in
case spaceR_proj_4343 of {
| nil =>
let p_proj_4344 := proj_4 1042 env_4341 in
let CertiCoq.Benchmarks.lib.vs.var2_proj_4345 := proj_0 1042 env_4341 in
let n_proj_4347 := proj_5 1042 env_4341 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_4348 := proj_1 1042 env_4341 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_4350 := proj_2 1042 env_4341 in
let y_4352 := app list_prio_uncurried_uncurried_uncurried_known_104<4>(CertiCoq.Benchmarks.lib.vs.var0_proj_4350,n_proj_4347,CertiCoq.Benchmarks.lib.vs.var1_proj_4348) in
let y_4354 := app list_prio_uncurried_uncurried_uncurried_known_104<4>(y_4352,p_proj_4344,CertiCoq.Benchmarks.lib.vs.var2_proj_4345) in
let y_4355 := con_99() in
let p_proj_4356 := proj_4 1042 env_4341 in
let n_proj_4357 := proj_5 1042 env_4341 in
let y_4358 := PureClause(p_proj_4356,n_proj_4357,y_4354,y_4355) in
let y_4359 := nil() in
let y_4360 := cons(y_4358,y_4359) in
halt y_4360
| cons =>
let p_proj_4361 := proj_4 1042 env_4341 in
let spaceR_proj_4362 := proj_3 1042 env_4341 in
let n_proj_4363 := proj_5 1042 env_4341 in
let y_4364 := NegSpaceClause(p_proj_4361,spaceR_proj_4362,n_proj_4363) in
let y_4365 := nil() in
let y_4366 := cons(y_4364,y_4365) in
halt y_4366
}
| cons =>
let p_proj_4367 := proj_4 1042 env_4341 in
let spaceR_proj_4368 := proj_3 1042 env_4341 in
let n_proj_4369 := proj_5 1042 env_4341 in
let y_4370 := NegSpaceClause(p_proj_4367,spaceR_proj_4368,n_proj_4369) in
let y_4371 := nil() in
let y_4372 := cons(y_4370,y_4371) in
halt y_4372
}
fun f_case_337<19>(env_4373,s_4374) :=
case s_4374 of {
| Entailment =>
let a_4375 := proj_0 124 s_4374 in
let a0_4376 := proj_1 124 s_4374 in
case a_4375 of {
| Assertion =>
let pi_4377 := proj_0 125 a_4375 in
let sigma_4378 := proj_1 125 a_4375 in
case a0_4376 of {
| Assertion =>
let pi'_4379 := proj_0 125 a0_4376 in
let sigma'_4380 := proj_1 125 a0_4376 in
let y_proj_4381 := proj_3 1049 env_4373 in
let y_4383 := app mk_pureR_known_142<19>(pi_4377,y_proj_4381) in
case y_4383 of {
| pair =>
let y_proj_4384 := proj_3 1049 env_4373 in
let y_4386 := app mk_pureR_known_142<19>(pi'_4379,y_proj_4384) in
case y_4386 of {
| pair =>
let pi'plus_4387 := proj_0 147 y_4386 in
let pi'minus_4388 := proj_1 147 y_4386 in
let y_4389 := xH() in
let y_4390 := xI(y_4389) in
let y_4391 := xI(y_4390) in
let y_4392 := xO(y_4391) in
let y_4393 := xI(y_4392) in
let y_4394 := xI(y_4393) in
let y_4395 := xI(y_4394) in
let y_4396 := xO(y_4395) in
let y_4397 := xO(y_4396) in
let y_4398 := xI(y_4397) in
let y_4399 := xI(y_4398) in
let y_4400 := xO(y_4399) in
let y_4401 := xI(y_4400) in
let y_4402 := xO(y_4401) in
let y_4403 := xI(y_4402) in
let y_4404 := xI(y_4403) in
let y_4405 := xO(y_4404) in
let y_4406 := xO(y_4405) in
let y_4407 := xI(y_4406) in
let y_4408 := xO(y_4407) in
let y_4409 := xI(y_4408) in
let y_4410 := xO(y_4409) in
let y_4411 := xO(y_4410) in
let y_4412 := xO(y_4411) in
let y_4413 := xO(y_4412) in
let y_4414 := xO(y_4413) in
let y_4415 := xO(y_4414) in
let y_4416 := xO(y_4415) in
let y_4417 := xO(y_4416) in
let y_4418 := xO(y_4417) in
let y_4419 := NegSpaceClause(pi'plus_4387,sigma'_4380,pi'minus_4388) in
let CertiCoq.Benchmarks.lib.vs.var2_proj_4420 := proj_0 1049 env_4373 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_4421 := proj_1 1049 env_4373 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_4422 := proj_2 1049 env_4373 in
let y_proj_4423 := proj_3 1049 env_4373 in
let CertiCoq.Benchmarks.lib.vs.compare_clause_proj_4424 := proj_4 1049 env_4373 in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_4425 := proj_5 1049 env_4373 in
let CertiCoq.Benchmarks.lib.vs.M.empty_proj_4426 := proj_6 1049 env_4373 in
let y_proj_4427 := proj_7 1049 env_4373 in
let y_proj_4428 := proj_8 1049 env_4373 in
let CertiCoq.Benchmarks.lib.vs.Superposition.delete_resolved_proj_4429 := proj_9 1049 env_4373 in
let CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_proj_4430 := proj_10 1049 env_4373 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_4431 := proj_11 1049 env_4373 in
let CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_4432 := proj_12 1049 env_4373 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_4433 := proj_13 1049 env_4373 in
let CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_proj_4434 := proj_14 1049 env_4373 in
let CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_4435 := proj_15 1049 env_4373 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_4436 := proj_16 1049 env_4373 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_4437 := proj_17 1049 env_4373 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_proj_4438 := proj_18 1049 env_4373 in
let CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_4439 := proj_21 1049 env_4373 in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_4440 := proj_22 1049 env_4373 in
let CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_proj_4441 := proj_23 1049 env_4373 in
let y_wrapper_proj_4442 := proj_24 1049 env_4373 in
let CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_4443 := proj_25 1049 env_4373 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_4444 := proj_26 1049 env_4373 in
let env_4445 := con_1052(CertiCoq.Benchmarks.lib.vs.var2_proj_4420,CertiCoq.Benchmarks.lib.vs.var1_proj_4421,CertiCoq.Benchmarks.lib.vs.var0_proj_4422,y_proj_4423,CertiCoq.Benchmarks.lib.vs.compare_clause_proj_4424,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_4425,CertiCoq.Benchmarks.lib.vs.M.empty_proj_4426,y_proj_4427,y_proj_4428,CertiCoq.Benchmarks.lib.vs.Superposition.delete_resolved_proj_4429,CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_proj_4430,CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_4431,CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_4432,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_4433,CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_proj_4434,CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_4435,CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_4436,CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_4437,CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_proj_4438,CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_4439,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_4440,CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_proj_4441,y_wrapper_proj_4442,CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_4443,CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_4444) in
let y_4446 := con_99() in
let y_proj_4447 := proj_19 1049 env_4373 in
let s_proj_4448 := proj_20 1049 env_4373 in
let y_4449 := app hrec_uncurried_uncurried_uncurried_uncurried_uncurried_342<8>(env_4445,y_4446,y_proj_4447,s_proj_4448,y_4419,sigma_4378,y_4418) in
case y_4449 of {
| exist =>
let v_4450 := proj_0 105 y_4449 in
halt v_4450
}
}
}
}
}
}
fun hrec_uncurried_uncurried_338<5>(env_4451,nc_4452,sigma_4453,n_4454) :=
let hrec_uncurried_uncurried_uncurried_uncurried_uncurried_clo_4455 := con_15(hrec_uncurried_uncurried_uncurried_uncurried_uncurried_342,env_4451) in
let env_4456 := con_1058(hrec_uncurried_uncurried_uncurried_uncurried_uncurried_clo_4455,nc_4452,sigma_4453,n_4454) in
let y_wrapper_clo_4457 := con_15(y_wrapper_341,env_4456) in
halt y_wrapper_clo_4457
fun y_339<3>(env_4458,Acc_n_4459) :=
let hrec_uncurried_uncurried_uncurried_uncurried_uncurried_proj_4460 := proj_5 1055 env_4458 in
let cl_proj_4461 := proj_0 1055 env_4458 in
let s_proj_4462 := proj_1 1055 env_4458 in
let nc_proj_4463 := proj_4 1055 env_4458 in
let sigma_proj_4464 := proj_3 1055 env_4458 in
let n_proj_4465 := proj_2 1055 env_4458 in
let hrec_uncurried_uncurried_uncurried_uncurried_uncurried_code_4466 := proj_0 15 hrec_uncurried_uncurried_uncurried_uncurried_uncurried_proj_4460 in
let hrec_uncurried_uncurried_uncurried_uncurried_uncurried_env_4467 := proj_1 15 hrec_uncurried_uncurried_uncurried_uncurried_uncurried_proj_4460 in
hrec_uncurried_uncurried_uncurried_uncurried_uncurried_code_4466<8>(hrec_uncurried_uncurried_uncurried_uncurried_uncurried_env_4467,Acc_n_4459,cl_proj_4461,s_proj_4462,nc_proj_4463,sigma_proj_4464,n_proj_4465)
fun y_wrapper_340<3>(env_4468,cl_4469) :=
let hrec_uncurried_uncurried_uncurried_uncurried_uncurried_proj_4470 := proj_4 1056 env_4468 in
let nc_proj_4471 := proj_3 1056 env_4468 in
let sigma_proj_4472 := proj_2 1056 env_4468 in
let n_proj_4473 := proj_1 1056 env_4468 in
let s_proj_4474 := proj_0 1056 env_4468 in
let env_4475 := con_1055(cl_4469,s_proj_4474,n_proj_4473,sigma_proj_4472,nc_proj_4471,hrec_uncurried_uncurried_uncurried_uncurried_uncurried_proj_4470) in
let y_clo_4476 := con_15(y_339,env_4475) in
halt y_clo_4476
fun y_wrapper_341<3>(env_4477,s_4478) :=
let hrec_uncurried_uncurried_uncurried_uncurried_uncurried_proj_4479 := proj_0 1058 env_4477 in
let nc_proj_4480 := proj_1 1058 env_4477 in
let sigma_proj_4481 := proj_2 1058 env_4477 in
let n_proj_4482 := proj_3 1058 env_4477 in
let env_4483 := con_1056(s_4478,n_proj_4482,sigma_proj_4481,nc_proj_4480,hrec_uncurried_uncurried_uncurried_uncurried_uncurried_proj_4479) in
let y_wrapper_clo_4484 := con_15(y_wrapper_340,env_4483) in
halt y_wrapper_clo_4484
fun hrec_uncurried_uncurried_uncurried_uncurried_uncurried_342<8>(env_4485,Acc_n_4486,cl_4487,s_4488,nc_4489,sigma_4490,n_4491) :=
let CertiCoq.Benchmarks.lib.vs.var2_proj_4492 := proj_0 1052 env_4485 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_4493 := proj_1 1052 env_4485 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_4494 := proj_2 1052 env_4485 in
let y_proj_4495 := proj_3 1052 env_4485 in
let CertiCoq.Benchmarks.lib.vs.compare_clause_proj_4496 := proj_4 1052 env_4485 in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_4497 := proj_5 1052 env_4485 in
let CertiCoq.Benchmarks.lib.vs.M.empty_proj_4498 := proj_6 1052 env_4485 in
let y_proj_4499 := proj_7 1052 env_4485 in
let y_proj_4500 := proj_8 1052 env_4485 in
let CertiCoq.Benchmarks.lib.vs.Superposition.delete_resolved_proj_4501 := proj_9 1052 env_4485 in
let CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_proj_4502 := proj_10 1052 env_4485 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_4503 := proj_11 1052 env_4485 in
let CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_4504 := proj_12 1052 env_4485 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_4505 := proj_13 1052 env_4485 in
let CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_proj_4506 := proj_14 1052 env_4485 in
let CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_4507 := proj_15 1052 env_4485 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_4508 := proj_16 1052 env_4485 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_4509 := proj_17 1052 env_4485 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_proj_4510 := proj_18 1052 env_4485 in
let hrec_uncurried_uncurried_clo_4511 := con_15(hrec_uncurried_uncurried_338,env_4485) in
let CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_4512 := proj_19 1052 env_4485 in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_4513 := proj_20 1052 env_4485 in
let CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_proj_4514 := proj_21 1052 env_4485 in
let y_wrapper_proj_4515 := proj_22 1052 env_4485 in
let CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_4516 := proj_23 1052 env_4485 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_4517 := proj_24 1052 env_4485 in
let env_4518 := con_1060(CertiCoq.Benchmarks.lib.vs.var2_proj_4492,CertiCoq.Benchmarks.lib.vs.var1_proj_4493,CertiCoq.Benchmarks.lib.vs.var0_proj_4494,y_proj_4495,CertiCoq.Benchmarks.lib.vs.compare_clause_proj_4496,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_4497,CertiCoq.Benchmarks.lib.vs.M.empty_proj_4498,y_proj_4499,y_proj_4500,CertiCoq.Benchmarks.lib.vs.Superposition.delete_resolved_proj_4501,CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_proj_4502,CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_4503,CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_4504,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_4505,CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_proj_4506,CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_4507,CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_4508,CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_4509,CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_proj_4510,hrec_uncurried_uncurried_clo_4511,cl_4487,s_4488,nc_4489,sigma_4490,n_4491,CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_4512,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_4513,CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_proj_4514,y_wrapper_proj_4515,CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_4516,CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_4517) in
let y_4519 := xH() in
let y_4521 := app eqb_uncurried_known_145<19>(y_4519,n_4491) in
let y_4522 := app f_case_343<19>(env_4518,y_4521) in
let y_4523 := con_99() in
let y_code_4524 := proj_0 15 y_4522 in
let y_env_4525 := proj_1 15 y_4522 in
y_code_4524<3>(y_env_4525,y_4523)
fun f_case_343<19>(env_4526,s_4527) :=
case s_4527 of {
| true =>
let y_proj_4528 := proj_7 1060 env_4526 in
let cl_proj_4529 := proj_20 1060 env_4526 in
let s_proj_4530 := proj_21 1060 env_4526 in
let env_4531 := con_1063(y_proj_4528,cl_proj_4529,s_proj_4530) in
let y_wrapper_clo_4532 := con_15(y_wrapper_344,env_4531) in
halt y_wrapper_clo_4532
| false =>
let CertiCoq.Benchmarks.lib.vs.var2_proj_4533 := proj_0 1060 env_4526 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_4534 := proj_1 1060 env_4526 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_4535 := proj_2 1060 env_4526 in
let y_proj_4536 := proj_3 1060 env_4526 in
let CertiCoq.Benchmarks.lib.vs.compare_clause_proj_4537 := proj_4 1060 env_4526 in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_4538 := proj_5 1060 env_4526 in
let CertiCoq.Benchmarks.lib.vs.M.empty_proj_4539 := proj_6 1060 env_4526 in
let y_proj_4540 := proj_7 1060 env_4526 in
let y_proj_4541 := proj_8 1060 env_4526 in
let CertiCoq.Benchmarks.lib.vs.Superposition.delete_resolved_proj_4542 := proj_9 1060 env_4526 in
let CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_proj_4543 := proj_10 1060 env_4526 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_4544 := proj_11 1060 env_4526 in
let CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_4545 := proj_12 1060 env_4526 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_4546 := proj_13 1060 env_4526 in
let CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_proj_4547 := proj_14 1060 env_4526 in
let CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_4548 := proj_15 1060 env_4526 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_4549 := proj_16 1060 env_4526 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_4550 := proj_17 1060 env_4526 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_proj_4551 := proj_18 1060 env_4526 in
let hrec_uncurried_uncurried_proj_4552 := proj_19 1060 env_4526 in
let cl_proj_4553 := proj_20 1060 env_4526 in
let s_proj_4554 := proj_21 1060 env_4526 in
let nc_proj_4555 := proj_22 1060 env_4526 in
let sigma_proj_4556 := proj_23 1060 env_4526 in
let n_proj_4557 := proj_24 1060 env_4526 in
let CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_4558 := proj_25 1060 env_4526 in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_4559 := proj_26 1060 env_4526 in
let CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_proj_4560 := proj_27 1060 env_4526 in
let y_wrapper_proj_4561 := proj_28 1060 env_4526 in
let CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_4562 := proj_29 1060 env_4526 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_4563 := proj_30 1060 env_4526 in
let env_4564 := con_1065(CertiCoq.Benchmarks.lib.vs.var2_proj_4533,CertiCoq.Benchmarks.lib.vs.var1_proj_4534,CertiCoq.Benchmarks.lib.vs.var0_proj_4535,y_proj_4536,CertiCoq.Benchmarks.lib.vs.compare_clause_proj_4537,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_4538,CertiCoq.Benchmarks.lib.vs.M.empty_proj_4539,y_proj_4540,y_proj_4541,CertiCoq.Benchmarks.lib.vs.Superposition.delete_resolved_proj_4542,CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_proj_4543,CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_4544,CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_4545,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_4546,CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_proj_4547,CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_4548,CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_4549,CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_4550,CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_proj_4551,hrec_uncurried_uncurried_proj_4552,cl_proj_4553,s_proj_4554,nc_proj_4555,sigma_proj_4556,n_proj_4557,CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_4558,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_4559,CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_proj_4560,y_wrapper_proj_4561,CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_4562,CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_4563) in
let y_clo_4565 := con_15(y_345,env_4564) in
halt y_clo_4565
}
fun y_wrapper_344<3>(env_4566,teq_4567) :=
let y_proj_4568 := proj_0 1063 env_4566 in
let cl_proj_4569 := proj_1 1063 env_4566 in
let s_proj_4570 := proj_2 1063 env_4566 in
let y_4572 := app CertiCoq.Benchmarks.lib.vs.M.this_known_127<304>(s_proj_4570) in
let y_4574 := app elements_aux_uncurried_known_146<19>(y_4572,y_proj_4568) in
let y_4575 := Aborted(y_4574,cl_proj_4569) in
let y_4576 := con_99() in
let y_4577 := exist(y_4575,y_4576) in
halt y_4577
fun y_345<3>(env_4578,teq_4579) :=
let y_proj_4580 := proj_3 1065 env_4578 in
let y_proj_4581 := proj_8 1065 env_4578 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_4582 := proj_11 1065 env_4578 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_4583 := proj_13 1065 env_4578 in
let CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_proj_4584 := proj_14 1065 env_4578 in
let CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_4585 := proj_15 1065 env_4578 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_4586 := proj_16 1065 env_4578 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_4587 := proj_17 1065 env_4578 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_proj_4588 := proj_18 1065 env_4578 in
let hrec_uncurried_uncurried_proj_4589 := proj_19 1065 env_4578 in
let cl_proj_4590 := proj_20 1065 env_4578 in
let nc_proj_4591 := proj_22 1065 env_4578 in
let sigma_proj_4592 := proj_23 1065 env_4578 in
let n_proj_4593 := proj_24 1065 env_4578 in
let CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_proj_4594 := proj_27 1065 env_4578 in
let y_wrapper_proj_4595 := proj_28 1065 env_4578 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_4596 := proj_30 1065 env_4578 in
let env_4597 := con_1066(y_proj_4580,y_proj_4581,CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_4582,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_4583,CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_proj_4584,CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_4585,CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_4586,CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_4587,CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_proj_4588,hrec_uncurried_uncurried_proj_4589,cl_proj_4590,nc_proj_4591,sigma_proj_4592,n_proj_4593,CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_proj_4594,y_wrapper_proj_4595,CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_4596) in
let y_4598 := xH() in
let y_4599 := xI(y_4598) in
let y_4600 := xI(y_4599) in
let y_4601 := xO(y_4600) in
let y_4602 := xI(y_4601) in
let y_4603 := xI(y_4602) in
let y_4604 := xI(y_4603) in
let y_4605 := xO(y_4604) in
let y_4606 := xO(y_4605) in
let y_4607 := xI(y_4606) in
let y_4608 := xI(y_4607) in
let y_4609 := xO(y_4608) in
let y_4610 := xI(y_4609) in
let y_4611 := xO(y_4610) in
let y_4612 := xI(y_4611) in
let y_4613 := xI(y_4612) in
let y_4614 := xO(y_4613) in
let y_4615 := xO(y_4614) in
let y_4616 := xI(y_4615) in
let y_4617 := xO(y_4616) in
let y_4618 := xI(y_4617) in
let y_4619 := xO(y_4618) in
let y_4620 := xO(y_4619) in
let y_4621 := xO(y_4620) in
let y_4622 := xO(y_4621) in
let y_4623 := xO(y_4622) in
let y_4624 := xO(y_4623) in
let y_4625 := xO(y_4624) in
let y_4626 := xO(y_4625) in
let y_4627 := xO(y_4626) in
let y_4628 := nil() in
let y_4629 := con_99() in
let CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_4630 := proj_12 1065 env_4578 in
let env_4631 := con_617(CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_4630,y_4629) in
let y_wrapper_clo_4632 := con_15(y_wrapper_223,env_4631) in
let s_proj_4634 := proj_21 1065 env_4578 in
let CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_4635 := proj_29 1065 env_4578 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_4636 := proj_13 1065 env_4578 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_4637 := proj_30 1065 env_4578 in
let y_4638 := app CertiCoq.Benchmarks.lib.vs.M.filter_uncurried_known_248<104>(s_proj_4634,CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_4635,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_4636,CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_4637) in
let y_proj_4639 := proj_7 1065 env_4578 in
let y_4641 := app CertiCoq.Benchmarks.lib.vs.M.this_known_127<304>(y_4638) in
let y_4643 := app elements_aux_uncurried_known_146<19>(y_4641,y_proj_4639) in
let y_4646 := app rsort_uncurried_uncurried_known_221<19>(y_4643,y_wrapper_clo_4632) in
let CertiCoq.Benchmarks.lib.vs.var2_proj_4648 := proj_0 1065 env_4578 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_4649 := proj_1 1065 env_4578 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_4650 := proj_2 1065 env_4578 in
let y_proj_4651 := proj_3 1065 env_4578 in
let CertiCoq.Benchmarks.lib.vs.compare_clause_proj_4652 := proj_4 1065 env_4578 in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_4653 := proj_5 1065 env_4578 in
let CertiCoq.Benchmarks.lib.vs.M.empty_proj_4654 := proj_6 1065 env_4578 in
let CertiCoq.Benchmarks.lib.vs.Superposition.delete_resolved_proj_4655 := proj_9 1065 env_4578 in
let CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_proj_4656 := proj_10 1065 env_4578 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_4657 := proj_11 1065 env_4578 in
let CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_4658 := proj_12 1065 env_4578 in
let CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_4659 := proj_25 1065 env_4578 in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_4660 := proj_26 1065 env_4578 in
let CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_4661 := proj_29 1065 env_4578 in
let env_4662 := con_1192(CertiCoq.Benchmarks.lib.vs.var2_proj_4648,CertiCoq.Benchmarks.lib.vs.var1_proj_4649,CertiCoq.Benchmarks.lib.vs.var0_proj_4650,y_proj_4651,CertiCoq.Benchmarks.lib.vs.compare_clause_proj_4652,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_4653,CertiCoq.Benchmarks.lib.vs.M.empty_proj_4654,CertiCoq.Benchmarks.lib.vs.Superposition.delete_resolved_proj_4655,CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_proj_4656,CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_4657,CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_4658,CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_4659,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_4660,CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_4661) in
let y_4663 := con_99() in
let y_4664 := app hrec_uncurried_uncurried_uncurried_391<6>(env_4662,y_4663,y_4646,y_4628,y_4627) in
let y_4665 := app f_case_known_390<324>(y_4664) in
let y_4666 := app f_case_346<19>(env_4597,y_4665) in
let y_4667 := con_99() in
let y_code_4668 := proj_0 15 y_4666 in
let y_env_4669 := proj_1 15 y_4666 in
y_code_4668<3>(y_env_4669,y_4667)
fun f_case_346<19>(env_4670,s_4671) :=
case s_4671 of {
| pair =>
let a_4672 := proj_0 147 s_4671 in
let y_proj_4673 := proj_0 1066 env_4670 in
let y_proj_4674 := proj_1 1066 env_4670 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_4675 := proj_2 1066 env_4670 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_4676 := proj_3 1066 env_4670 in
let CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_proj_4677 := proj_4 1066 env_4670 in
let CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_4678 := proj_5 1066 env_4670 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_4679 := proj_6 1066 env_4670 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_4680 := proj_7 1066 env_4670 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_proj_4681 := proj_8 1066 env_4670 in
let hrec_uncurried_uncurried_proj_4682 := proj_9 1066 env_4670 in
let cl_proj_4683 := proj_10 1066 env_4670 in
let nc_proj_4684 := proj_11 1066 env_4670 in
let sigma_proj_4685 := proj_12 1066 env_4670 in
let n_proj_4686 := proj_13 1066 env_4670 in
let CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_proj_4687 := proj_14 1066 env_4670 in
let y_wrapper_proj_4688 := proj_15 1066 env_4670 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_4689 := proj_16 1066 env_4670 in
let env_4690 := con_1067(y_proj_4673,y_proj_4674,CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_4675,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_4676,CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_proj_4677,CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_4678,CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_4679,CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_4680,CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_proj_4681,hrec_uncurried_uncurried_proj_4682,cl_proj_4683,nc_proj_4684,sigma_proj_4685,n_proj_4686,a_4672,CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_proj_4687,y_wrapper_proj_4688,CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_4689) in
let y_clo_4691 := con_15(y_347,env_4690) in
halt y_clo_4691
}
fun y_347<3>(env_4692,teq0_4693) :=
let y_proj_4694 := proj_0 1067 env_4692 in
let y_proj_4695 := proj_1 1067 env_4692 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_4696 := proj_2 1067 env_4692 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_4697 := proj_3 1067 env_4692 in
let CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_proj_4698 := proj_4 1067 env_4692 in
let CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_4699 := proj_5 1067 env_4692 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_4700 := proj_6 1067 env_4692 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_4701 := proj_7 1067 env_4692 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_proj_4702 := proj_8 1067 env_4692 in
let hrec_uncurried_uncurried_proj_4703 := proj_9 1067 env_4692 in
let cl_proj_4704 := proj_10 1067 env_4692 in
let nc_proj_4705 := proj_11 1067 env_4692 in
let sigma_proj_4706 := proj_12 1067 env_4692 in
let n_proj_4707 := proj_13 1067 env_4692 in
let CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_proj_4708 := proj_15 1067 env_4692 in
let y_wrapper_proj_4709 := proj_16 1067 env_4692 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_4710 := proj_17 1067 env_4692 in
let env_4711 := con_1068(y_proj_4694,y_proj_4695,CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_4696,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_4697,CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_proj_4698,CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_4699,CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_4700,CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_4701,CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_proj_4702,hrec_uncurried_uncurried_proj_4703,cl_proj_4704,nc_proj_4705,sigma_proj_4706,n_proj_4707,CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_proj_4708,y_wrapper_proj_4709,CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_4710) in
let a_proj_4712 := proj_14 1067 env_4692 in
let y_4713 := app f_case_348<19>(env_4711,a_proj_4712) in
let y_4714 := con_99() in
let y_code_4715 := proj_0 15 y_4713 in
let y_env_4716 := proj_1 15 y_4713 in
let y_4717 := app y_code_4715<3>(y_env_4716,y_4714) in
let y_4718 := con_99() in
let y_code_4719 := proj_0 15 y_4717 in
let y_env_4720 := proj_1 15 y_4717 in
y_code_4719<3>(y_env_4720,y_4718)
fun f_case_348<19>(env_4721,s_4722) :=
case s_4722 of {
| pair =>
let a_4723 := proj_0 147 s_4722 in
let b_4724 := proj_1 147 s_4722 in
let y_proj_4725 := proj_0 1068 env_4721 in
let y_proj_4726 := proj_1 1068 env_4721 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_4727 := proj_2 1068 env_4721 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_4728 := proj_3 1068 env_4721 in
let CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_proj_4729 := proj_4 1068 env_4721 in
let CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_4730 := proj_5 1068 env_4721 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_4731 := proj_6 1068 env_4721 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_4732 := proj_7 1068 env_4721 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_proj_4733 := proj_8 1068 env_4721 in
let hrec_uncurried_uncurried_proj_4734 := proj_9 1068 env_4721 in
let cl_proj_4735 := proj_10 1068 env_4721 in
let nc_proj_4736 := proj_11 1068 env_4721 in
let sigma_proj_4737 := proj_12 1068 env_4721 in
let n_proj_4738 := proj_13 1068 env_4721 in
let CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_proj_4739 := proj_14 1068 env_4721 in
let y_wrapper_proj_4740 := proj_15 1068 env_4721 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_4741 := proj_16 1068 env_4721 in
let env_4742 := con_1069(y_proj_4725,y_proj_4726,CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_4727,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_4728,CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_proj_4729,CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_4730,CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_4731,CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_4732,CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_proj_4733,hrec_uncurried_uncurried_proj_4734,cl_proj_4735,nc_proj_4736,sigma_proj_4737,n_proj_4738,a_4723,b_4724,CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_proj_4739,y_wrapper_proj_4740,CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_4741) in
let y_clo_4743 := con_15(y_349,env_4742) in
halt y_clo_4743
}
fun y_349<3>(env_4744,teq1_4745) :=
let y_uncurried_clo_4746 := con_15(y_uncurried_351,env_4744) in
let env_4747 := con_1071(y_uncurried_clo_4746,teq1_4745) in
let y_wrapper_clo_4748 := con_15(y_wrapper_350,env_4747) in
halt y_wrapper_clo_4748
fun y_wrapper_350<3>(env_4749,teq0_4750) :=
let y_uncurried_proj_4751 := proj_0 1071 env_4749 in
let teq1_proj_4752 := proj_1 1071 env_4749 in
let y_uncurried_code_4753 := proj_0 15 y_uncurried_proj_4751 in
let y_uncurried_env_4754 := proj_1 15 y_uncurried_proj_4751 in
y_uncurried_code_4753<4>(y_uncurried_env_4754,teq0_4750,teq1_proj_4752)
fun y_uncurried_351<4>(env_4755,teq0_4756,teq1_4757) :=
let y_proj_4758 := proj_0 1069 env_4755 in
let y_proj_4759 := proj_1 1069 env_4755 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_4760 := proj_2 1069 env_4755 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_4761 := proj_3 1069 env_4755 in
let CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_proj_4762 := proj_4 1069 env_4755 in
let CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_4763 := proj_5 1069 env_4755 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_4764 := proj_6 1069 env_4755 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_4765 := proj_7 1069 env_4755 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_proj_4766 := proj_8 1069 env_4755 in
let hrec_uncurried_uncurried_proj_4767 := proj_9 1069 env_4755 in
let cl_proj_4768 := proj_10 1069 env_4755 in
let nc_proj_4769 := proj_11 1069 env_4755 in
let sigma_proj_4770 := proj_12 1069 env_4755 in
let n_proj_4771 := proj_13 1069 env_4755 in
let b_proj_4772 := proj_15 1069 env_4755 in
let CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_proj_4773 := proj_16 1069 env_4755 in
let y_wrapper_proj_4774 := proj_17 1069 env_4755 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_4775 := proj_18 1069 env_4755 in
let env_4776 := con_1073(y_proj_4758,y_proj_4759,CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_4760,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_4761,CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_proj_4762,CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_4763,CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_4764,CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_4765,CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_proj_4766,hrec_uncurried_uncurried_proj_4767,cl_proj_4768,nc_proj_4769,sigma_proj_4770,n_proj_4771,b_proj_4772,CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_proj_4773,y_wrapper_proj_4774,CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_4775) in
let a_proj_4777 := proj_14 1069 env_4755 in
let y_4778 := app f_case_352<19>(env_4776,a_proj_4777) in
let y_4779 := con_99() in
let y_code_4780 := proj_0 15 y_4778 in
let y_env_4781 := proj_1 15 y_4778 in
let y_4782 := app y_code_4780<3>(y_env_4781,y_4779) in
let y_4783 := con_99() in
let y_code_4784 := proj_0 15 y_4782 in
let y_env_4785 := proj_1 15 y_4782 in
let y_4786 := app y_code_4784<3>(y_env_4785,y_4783) in
let y_4787 := con_99() in
let y_code_4788 := proj_0 15 y_4786 in
let y_env_4789 := proj_1 15 y_4786 in
y_code_4788<3>(y_env_4789,y_4787)
fun f_case_352<19>(env_4790,s_4791) :=
case s_4791 of {
| pair =>
let a_4792 := proj_0 147 s_4791 in
let b_4793 := proj_1 147 s_4791 in
let y_proj_4794 := proj_0 1073 env_4790 in
let y_proj_4795 := proj_1 1073 env_4790 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_4796 := proj_2 1073 env_4790 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_4797 := proj_3 1073 env_4790 in
let CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_proj_4798 := proj_4 1073 env_4790 in
let CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_4799 := proj_5 1073 env_4790 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_4800 := proj_6 1073 env_4790 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_4801 := proj_7 1073 env_4790 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_proj_4802 := proj_8 1073 env_4790 in
let hrec_uncurried_uncurried_proj_4803 := proj_9 1073 env_4790 in
let cl_proj_4804 := proj_10 1073 env_4790 in
let nc_proj_4805 := proj_11 1073 env_4790 in
let sigma_proj_4806 := proj_12 1073 env_4790 in
let n_proj_4807 := proj_13 1073 env_4790 in
let b_proj_4808 := proj_14 1073 env_4790 in
let CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_proj_4809 := proj_15 1073 env_4790 in
let y_wrapper_proj_4810 := proj_16 1073 env_4790 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_4811 := proj_17 1073 env_4790 in
let env_4812 := con_1074(y_proj_4794,y_proj_4795,CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_4796,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_4797,CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_proj_4798,CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_4799,CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_4800,CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_4801,CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_proj_4802,hrec_uncurried_uncurried_proj_4803,cl_proj_4804,nc_proj_4805,sigma_proj_4806,n_proj_4807,b_proj_4808,a_4792,b_4793,CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_proj_4809,y_wrapper_proj_4810,CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_4811) in
let y_clo_4813 := con_15(y_353,env_4812) in
halt y_clo_4813
}
fun y_353<3>(env_4814,teq2_4815) :=
let y_uncurried_uncurried_clo_4816 := con_15(y_uncurried_uncurried_356,env_4814) in
let env_4817 := con_1079(y_uncurried_uncurried_clo_4816,teq2_4815) in
let y_wrapper_clo_4818 := con_15(y_wrapper_355,env_4817) in
halt y_wrapper_clo_4818
fun y_wrapper_354<3>(env_4819,teq0_4820) :=
let y_uncurried_uncurried_proj_4821 := proj_2 1077 env_4819 in
let teq2_proj_4822 := proj_1 1077 env_4819 in
let teq1_proj_4823 := proj_0 1077 env_4819 in
let y_uncurried_uncurried_code_4824 := proj_0 15 y_uncurried_uncurried_proj_4821 in
let y_uncurried_uncurried_env_4825 := proj_1 15 y_uncurried_uncurried_proj_4821 in
y_uncurried_uncurried_code_4824<5>(y_uncurried_uncurried_env_4825,teq0_4820,teq1_proj_4823,teq2_proj_4822)
fun y_wrapper_355<3>(env_4826,teq1_4827) :=
let y_uncurried_uncurried_proj_4828 := proj_0 1079 env_4826 in
let teq2_proj_4829 := proj_1 1079 env_4826 in
let env_4830 := con_1077(teq1_4827,teq2_proj_4829,y_uncurried_uncurried_proj_4828) in
let y_wrapper_clo_4831 := con_15(y_wrapper_354,env_4830) in
halt y_wrapper_clo_4831
fun y_uncurried_uncurried_356<5>(env_4832,teq0_4833,teq1_4834,teq2_4835) :=
let y_proj_4836 := proj_0 1074 env_4832 in
let y_proj_4837 := proj_1 1074 env_4832 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_4838 := proj_2 1074 env_4832 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_4839 := proj_3 1074 env_4832 in
let CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_proj_4840 := proj_4 1074 env_4832 in
let CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_4841 := proj_5 1074 env_4832 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_4842 := proj_6 1074 env_4832 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_4843 := proj_7 1074 env_4832 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_proj_4844 := proj_8 1074 env_4832 in
let hrec_uncurried_uncurried_proj_4845 := proj_9 1074 env_4832 in
let cl_proj_4846 := proj_10 1074 env_4832 in
let nc_proj_4847 := proj_11 1074 env_4832 in
let sigma_proj_4848 := proj_12 1074 env_4832 in
let n_proj_4849 := proj_13 1074 env_4832 in
let b_proj_4850 := proj_14 1074 env_4832 in
let b_proj_4851 := proj_16 1074 env_4832 in
let CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_proj_4852 := proj_17 1074 env_4832 in
let y_wrapper_proj_4853 := proj_18 1074 env_4832 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_4854 := proj_19 1074 env_4832 in
let env_4855 := con_1081(y_proj_4836,y_proj_4837,CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_4838,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_4839,CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_proj_4840,CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_4841,CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_4842,CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_4843,CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_proj_4844,hrec_uncurried_uncurried_proj_4845,cl_proj_4846,nc_proj_4847,sigma_proj_4848,n_proj_4849,b_proj_4850,b_proj_4851,CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_proj_4852,y_wrapper_proj_4853,CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_4854) in
let a_proj_4856 := proj_15 1074 env_4832 in
let y_4857 := app f_case_357<19>(env_4855,a_proj_4856) in
let y_4858 := con_99() in
let y_code_4859 := proj_0 15 y_4857 in
let y_env_4860 := proj_1 15 y_4857 in
let y_4861 := app y_code_4859<3>(y_env_4860,y_4858) in
let y_4862 := con_99() in
let y_code_4863 := proj_0 15 y_4861 in
let y_env_4864 := proj_1 15 y_4861 in
let y_4865 := app y_code_4863<3>(y_env_4864,y_4862) in
let y_4866 := con_99() in
let y_code_4867 := proj_0 15 y_4865 in
let y_env_4868 := proj_1 15 y_4865 in
let y_4869 := app y_code_4867<3>(y_env_4868,y_4866) in
let y_4870 := con_99() in
let y_code_4871 := proj_0 15 y_4869 in
let y_env_4872 := proj_1 15 y_4869 in
y_code_4871<3>(y_env_4872,y_4870)
fun f_case_357<19>(env_4873,s_4874) :=
case s_4874 of {
| Valid =>
let env_4875 := con_1092() in
let y_wrapper_clo_4876 := con_15(y_wrapper_361,env_4875) in
halt y_wrapper_clo_4876
| C_example =>
let m_4877 := proj_0 114 s_4874 in
let t_4878 := proj_1 114 s_4874 in
let y_proj_4879 := proj_0 1081 env_4873 in
let y_proj_4880 := proj_1 1081 env_4873 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_4881 := proj_2 1081 env_4873 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_4882 := proj_3 1081 env_4873 in
let CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_proj_4883 := proj_4 1081 env_4873 in
let CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_4884 := proj_5 1081 env_4873 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_4885 := proj_6 1081 env_4873 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_4886 := proj_7 1081 env_4873 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_proj_4887 := proj_8 1081 env_4873 in
let hrec_uncurried_uncurried_proj_4888 := proj_9 1081 env_4873 in
let nc_proj_4889 := proj_11 1081 env_4873 in
let sigma_proj_4890 := proj_12 1081 env_4873 in
let n_proj_4891 := proj_13 1081 env_4873 in
let b_proj_4892 := proj_14 1081 env_4873 in
let b_proj_4893 := proj_15 1081 env_4873 in
let CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_proj_4894 := proj_16 1081 env_4873 in
let y_wrapper_proj_4895 := proj_17 1081 env_4873 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_4896 := proj_18 1081 env_4873 in
let env_4897 := con_1094(y_proj_4879,y_proj_4880,CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_4881,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_4882,CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_proj_4883,CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_4884,CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_4885,CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_4886,CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_proj_4887,hrec_uncurried_uncurried_proj_4888,nc_proj_4889,sigma_proj_4890,n_proj_4891,b_proj_4892,b_proj_4893,m_4877,t_4878,CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_proj_4894,y_wrapper_proj_4895,CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_4896) in
let y_clo_4898 := con_15(y_362,env_4897) in
halt y_clo_4898
| Aborted =>
let l_4899 := proj_0 115 s_4874 in
let cl_proj_4900 := proj_10 1081 env_4873 in
let env_4901 := con_1185(cl_proj_4900,l_4899) in
let y_wrapper_clo_4902 := con_15(y_wrapper_389,env_4901) in
halt y_wrapper_clo_4902
}
fun y_wrapper_358<3>(env_4903,teq0_4904) :=
let y_4905 := Valid() in
let y_4906 := con_99() in
let y_4907 := exist(y_4905,y_4906) in
halt y_4907
fun y_wrapper_359<3>(env_4908,teq1_4909) :=
let env_4910 := con_1086() in
let y_wrapper_clo_4911 := con_15(y_wrapper_358,env_4910) in
halt y_wrapper_clo_4911
fun y_wrapper_360<3>(env_4912,teq2_4913) :=
let env_4914 := con_1088() in
let y_wrapper_clo_4915 := con_15(y_wrapper_359,env_4914) in
halt y_wrapper_clo_4915
fun y_wrapper_361<3>(env_4916,teq3_4917) :=
let env_4918 := con_1090() in
let y_wrapper_clo_4919 := con_15(y_wrapper_360,env_4918) in
halt y_wrapper_clo_4919
fun y_362<3>(env_4920,teq3_4921) :=
let y_uncurried_uncurried_uncurried_clo_4922 := con_15(y_uncurried_uncurried_uncurried_366,env_4920) in
let env_4923 := con_1102(y_uncurried_uncurried_uncurried_clo_4922,teq3_4921) in
let y_wrapper_clo_4924 := con_15(y_wrapper_365,env_4923) in
halt y_wrapper_clo_4924
fun y_wrapper_363<3>(env_4925,teq0_4926) :=
let y_uncurried_uncurried_uncurried_proj_4927 := proj_3 1098 env_4925 in
let teq3_proj_4928 := proj_2 1098 env_4925 in
let teq2_proj_4929 := proj_1 1098 env_4925 in
let teq1_proj_4930 := proj_0 1098 env_4925 in
let y_uncurried_uncurried_uncurried_code_4931 := proj_0 15 y_uncurried_uncurried_uncurried_proj_4927 in
let y_uncurried_uncurried_uncurried_env_4932 := proj_1 15 y_uncurried_uncurried_uncurried_proj_4927 in
y_uncurried_uncurried_uncurried_code_4931<6>(y_uncurried_uncurried_uncurried_env_4932,teq0_4926,teq1_proj_4930,teq2_proj_4929,teq3_proj_4928)
fun y_wrapper_364<3>(env_4933,teq1_4934) :=
let y_uncurried_uncurried_uncurried_proj_4935 := proj_2 1100 env_4933 in
let teq3_proj_4936 := proj_1 1100 env_4933 in
let teq2_proj_4937 := proj_0 1100 env_4933 in
let env_4938 := con_1098(teq1_4934,teq2_proj_4937,teq3_proj_4936,y_uncurried_uncurried_uncurried_proj_4935) in
let y_wrapper_clo_4939 := con_15(y_wrapper_363,env_4938) in
halt y_wrapper_clo_4939
fun y_wrapper_365<3>(env_4940,teq2_4941) :=
let y_uncurried_uncurried_uncurried_proj_4942 := proj_0 1102 env_4940 in
let teq3_proj_4943 := proj_1 1102 env_4940 in
let env_4944 := con_1100(teq2_4941,teq3_proj_4943,y_uncurried_uncurried_uncurried_proj_4942) in
let y_wrapper_clo_4945 := con_15(y_wrapper_364,env_4944) in
halt y_wrapper_clo_4945
fun y_uncurried_uncurried_uncurried_366<6>(env_4946,teq0_4947,teq1_4948,teq2_4949,teq3_4950) :=
let y_proj_4951 := proj_0 1094 env_4946 in
let y_proj_4952 := proj_1 1094 env_4946 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_4953 := proj_2 1094 env_4946 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_4954 := proj_3 1094 env_4946 in
let CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_proj_4955 := proj_4 1094 env_4946 in
let CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_4956 := proj_5 1094 env_4946 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_4957 := proj_6 1094 env_4946 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_4958 := proj_7 1094 env_4946 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_proj_4959 := proj_8 1094 env_4946 in
let hrec_uncurried_uncurried_proj_4960 := proj_9 1094 env_4946 in
let nc_proj_4961 := proj_10 1094 env_4946 in
let sigma_proj_4962 := proj_11 1094 env_4946 in
let n_proj_4963 := proj_12 1094 env_4946 in
let b_proj_4964 := proj_13 1094 env_4946 in
let b_proj_4965 := proj_14 1094 env_4946 in
let m_proj_4966 := proj_15 1094 env_4946 in
let t_proj_4967 := proj_16 1094 env_4946 in
let CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_proj_4968 := proj_17 1094 env_4946 in
let y_wrapper_proj_4969 := proj_18 1094 env_4946 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_4970 := proj_19 1094 env_4946 in
let env_4971 := con_1104(y_proj_4951,y_proj_4952,CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_4953,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_4954,CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_proj_4955,CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_4956,CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_4957,CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_4958,CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_proj_4959,hrec_uncurried_uncurried_proj_4960,nc_proj_4961,sigma_proj_4962,n_proj_4963,b_proj_4964,b_proj_4965,m_proj_4966,t_proj_4967,CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_proj_4968,y_wrapper_proj_4969,CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_4970) in
let y_4972 := nil() in
let y_4973 := nil() in
let sigma_proj_4974 := proj_11 1094 env_4946 in
let b_proj_4975 := proj_14 1094 env_4946 in
let y_proj_4976 := proj_0 1094 env_4946 in
let env_4977 := con_902(y_proj_4976) in
let y_wrapper_clo_4978 := con_15(y_wrapper_301,env_4977) in
let env_4979 := con_186(y_wrapper_clo_4978) in
let y_4980 := app fold_left_uncurried_106<4>(env_4979,sigma_proj_4974,b_proj_4975) in
let y_4981 := PosSpaceClause(y_4972,y_4973,y_4980) in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_4982 := proj_7 1094 env_4946 in
let t_proj_4983 := proj_16 1094 env_4946 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_code_4984 := proj_0 15 CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_4982 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_env_4985 := proj_1 15 CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_4982 in
let y_4986 := app CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_code_4984<4>(CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_env_4985,y_4981,t_proj_4983) in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_4987 := proj_6 1094 env_4946 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_code_4988 := proj_0 15 CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_4987 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_env_4989 := proj_1 15 CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_4987 in
let y_4990 := app CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_code_4988<3>(CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_env_4989,y_4986) in
let CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_4991 := proj_5 1094 env_4946 in
let b_proj_4992 := proj_13 1094 env_4946 in
let CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_code_4993 := proj_0 15 CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_4991 in
let CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_env_4994 := proj_1 15 CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_4991 in
let y_4995 := app CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_code_4993<4>(CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_env_4994,b_proj_4992,y_4990) in
let CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_proj_4996 := proj_4 1094 env_4946 in
let b_proj_4997 := proj_13 1094 env_4946 in
let CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_code_4998 := proj_0 15 CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_proj_4996 in
let CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_env_4999 := proj_1 15 CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_proj_4996 in
let y_5000 := app CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_code_4998<4>(CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_env_4999,b_proj_4997,y_4995) in
let y_5002 := app CertiCoq.Benchmarks.lib.vs.isEq_known_211<314>(y_5000) in
let y_5003 := app f_case_367<19>(env_4971,y_5002) in
let y_5004 := con_99() in
let y_code_5005 := proj_0 15 y_5003 in
let y_env_5006 := proj_1 15 y_5003 in
y_code_5005<3>(y_env_5006,y_5004)
fun f_case_367<19>(env_5007,s_5008) :=
case s_5008 of {
| true =>
let y_proj_5009 := proj_0 1104 env_5007 in
let y_proj_5010 := proj_1 1104 env_5007 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5011 := proj_2 1104 env_5007 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_5012 := proj_3 1104 env_5007 in
let CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_proj_5013 := proj_4 1104 env_5007 in
let CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_5014 := proj_5 1104 env_5007 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_5015 := proj_6 1104 env_5007 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5016 := proj_7 1104 env_5007 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_proj_5017 := proj_8 1104 env_5007 in
let hrec_uncurried_uncurried_proj_5018 := proj_9 1104 env_5007 in
let nc_proj_5019 := proj_10 1104 env_5007 in
let sigma_proj_5020 := proj_11 1104 env_5007 in
let n_proj_5021 := proj_12 1104 env_5007 in
let b_proj_5022 := proj_13 1104 env_5007 in
let b_proj_5023 := proj_14 1104 env_5007 in
let m_proj_5024 := proj_15 1104 env_5007 in
let t_proj_5025 := proj_16 1104 env_5007 in
let CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_proj_5026 := proj_17 1104 env_5007 in
let y_wrapper_proj_5027 := proj_18 1104 env_5007 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_5028 := proj_19 1104 env_5007 in
let env_5029 := con_1105(y_proj_5009,y_proj_5010,CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5011,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_5012,CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_proj_5013,CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_5014,CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_5015,CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5016,CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_proj_5017,hrec_uncurried_uncurried_proj_5018,nc_proj_5019,sigma_proj_5020,n_proj_5021,b_proj_5022,b_proj_5023,m_proj_5024,t_proj_5025,CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_proj_5026,y_wrapper_proj_5027,CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_5028) in
let y_clo_5030 := con_15(y_368,env_5029) in
halt y_clo_5030
| false =>
let y_proj_5031 := proj_0 1104 env_5007 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5032 := proj_2 1104 env_5007 in
let CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_5033 := proj_5 1104 env_5007 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_5034 := proj_6 1104 env_5007 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5035 := proj_7 1104 env_5007 in
let hrec_uncurried_uncurried_proj_5036 := proj_9 1104 env_5007 in
let nc_proj_5037 := proj_10 1104 env_5007 in
let sigma_proj_5038 := proj_11 1104 env_5007 in
let n_proj_5039 := proj_12 1104 env_5007 in
let b_proj_5040 := proj_13 1104 env_5007 in
let b_proj_5041 := proj_14 1104 env_5007 in
let t_proj_5042 := proj_16 1104 env_5007 in
let env_5043 := con_1161(y_proj_5031,CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5032,CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_5033,CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_5034,CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5035,hrec_uncurried_uncurried_proj_5036,nc_proj_5037,sigma_proj_5038,n_proj_5039,b_proj_5040,b_proj_5041,t_proj_5042) in
let y_clo_5044 := con_15(y_383,env_5043) in
halt y_clo_5044
}
fun y_368<3>(env_5045,teq4_5046) :=
let y_proj_5047 := proj_0 1105 env_5045 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5048 := proj_2 1105 env_5045 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_5049 := proj_3 1105 env_5045 in
let CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_proj_5050 := proj_4 1105 env_5045 in
let CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_5051 := proj_5 1105 env_5045 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_5052 := proj_6 1105 env_5045 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5053 := proj_7 1105 env_5045 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_proj_5054 := proj_8 1105 env_5045 in
let hrec_uncurried_uncurried_proj_5055 := proj_9 1105 env_5045 in
let nc_proj_5056 := proj_10 1105 env_5045 in
let sigma_proj_5057 := proj_11 1105 env_5045 in
let n_proj_5058 := proj_12 1105 env_5045 in
let b_proj_5059 := proj_13 1105 env_5045 in
let b_proj_5060 := proj_14 1105 env_5045 in
let m_proj_5061 := proj_15 1105 env_5045 in
let t_proj_5062 := proj_16 1105 env_5045 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_5063 := proj_19 1105 env_5045 in
let env_5064 := con_1106(y_proj_5047,CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5048,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_5049,CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_proj_5050,CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_5051,CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_5052,CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5053,CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_proj_5054,hrec_uncurried_uncurried_proj_5055,nc_proj_5056,sigma_proj_5057,n_proj_5058,b_proj_5059,b_proj_5060,m_proj_5061,t_proj_5062,CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_5063) in
let m_proj_5065 := proj_15 1105 env_5045 in
let y_5067 := app rev_known_181<313>(m_proj_5065) in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5068 := proj_2 1105 env_5045 in
let nc_proj_5069 := proj_10 1105 env_5045 in
let b_proj_5070 := proj_14 1105 env_5045 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_code_5071 := proj_0 15 CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5068 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_env_5072 := proj_1 15 CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5068 in
let y_5073 := app CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_code_5071<4>(CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_env_5072,nc_proj_5069,b_proj_5070) in
let y_proj_5074 := proj_1 1105 env_5045 in
let CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_proj_5075 := proj_17 1105 env_5045 in
let y_wrapper_proj_5076 := proj_18 1105 env_5045 in
let env_5077 := con_1139(y_proj_5074,y_5067,CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_proj_5075,y_wrapper_proj_5076) in
let y_5078 := app f_case_377<19>(env_5077,y_5073) in
let y_5079 := app f_case_369<19>(env_5064,y_5078) in
let y_5080 := con_99() in
let y_code_5081 := proj_0 15 y_5079 in
let y_env_5082 := proj_1 15 y_5079 in
y_code_5081<3>(y_env_5082,y_5080)
fun f_case_369<19>(env_5083,s_5084) :=
case s_5084 of {
| true =>
let y_proj_5085 := proj_0 1106 env_5083 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5086 := proj_1 1106 env_5083 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_5087 := proj_2 1106 env_5083 in
let CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_proj_5088 := proj_3 1106 env_5083 in
let CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_5089 := proj_4 1106 env_5083 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_5090 := proj_5 1106 env_5083 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5091 := proj_6 1106 env_5083 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_proj_5092 := proj_7 1106 env_5083 in
let hrec_uncurried_uncurried_proj_5093 := proj_8 1106 env_5083 in
let nc_proj_5094 := proj_9 1106 env_5083 in
let sigma_proj_5095 := proj_10 1106 env_5083 in
let n_proj_5096 := proj_11 1106 env_5083 in
let b_proj_5097 := proj_12 1106 env_5083 in
let b_proj_5098 := proj_13 1106 env_5083 in
let m_proj_5099 := proj_14 1106 env_5083 in
let t_proj_5100 := proj_15 1106 env_5083 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_5101 := proj_16 1106 env_5083 in
let env_5102 := con_1107(y_proj_5085,CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5086,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_5087,CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_proj_5088,CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_5089,CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_5090,CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5091,CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_proj_5092,hrec_uncurried_uncurried_proj_5093,nc_proj_5094,sigma_proj_5095,n_proj_5096,b_proj_5097,b_proj_5098,m_proj_5099,t_proj_5100,CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_5101) in
let y_clo_5103 := con_15(y_370,env_5102) in
halt y_clo_5103
| false =>
let m_proj_5104 := proj_14 1106 env_5083 in
let env_5105 := con_1136(m_proj_5104) in
let y_wrapper_clo_5106 := con_15(y_wrapper_376,env_5105) in
halt y_wrapper_clo_5106
}
fun y_370<3>(env_5107,teq5_5108) :=
let y_proj_5109 := proj_0 1107 env_5107 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5110 := proj_1 1107 env_5107 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_5111 := proj_2 1107 env_5107 in
let CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_5112 := proj_4 1107 env_5107 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_5113 := proj_5 1107 env_5107 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5114 := proj_6 1107 env_5107 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_proj_5115 := proj_7 1107 env_5107 in
let hrec_uncurried_uncurried_proj_5116 := proj_8 1107 env_5107 in
let nc_proj_5117 := proj_9 1107 env_5107 in
let sigma_proj_5118 := proj_10 1107 env_5107 in
let n_proj_5119 := proj_11 1107 env_5107 in
let b_proj_5120 := proj_12 1107 env_5107 in
let b_proj_5121 := proj_13 1107 env_5107 in
let m_proj_5122 := proj_14 1107 env_5107 in
let t_proj_5123 := proj_15 1107 env_5107 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_5124 := proj_16 1107 env_5107 in
let env_5125 := con_1108(y_proj_5109,CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5110,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_5111,CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_5112,CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_5113,CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5114,CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_proj_5115,hrec_uncurried_uncurried_proj_5116,nc_proj_5117,sigma_proj_5118,n_proj_5119,b_proj_5120,b_proj_5121,m_proj_5122,t_proj_5123,CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_5124) in
let y_5126 := nil() in
let y_5127 := nil() in
let sigma_proj_5128 := proj_10 1107 env_5107 in
let b_proj_5129 := proj_13 1107 env_5107 in
let y_proj_5130 := proj_0 1107 env_5107 in
let env_5131 := con_902(y_proj_5130) in
let y_wrapper_clo_5132 := con_15(y_wrapper_301,env_5131) in
let env_5133 := con_186(y_wrapper_clo_5132) in
let y_5134 := app fold_left_uncurried_106<4>(env_5133,sigma_proj_5128,b_proj_5129) in
let y_5135 := PosSpaceClause(y_5126,y_5127,y_5134) in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5136 := proj_6 1107 env_5107 in
let t_proj_5137 := proj_15 1107 env_5107 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_code_5138 := proj_0 15 CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5136 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_env_5139 := proj_1 15 CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5136 in
let y_5140 := app CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_code_5138<4>(CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_env_5139,y_5135,t_proj_5137) in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_5141 := proj_5 1107 env_5107 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_code_5142 := proj_0 15 CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_5141 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_env_5143 := proj_1 15 CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_5141 in
let y_5144 := app CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_code_5142<3>(CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_env_5143,y_5140) in
let CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_5145 := proj_4 1107 env_5107 in
let b_proj_5146 := proj_12 1107 env_5107 in
let CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_code_5147 := proj_0 15 CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_5145 in
let CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_env_5148 := proj_1 15 CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_5145 in
let y_5149 := app CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_code_5147<4>(CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_env_5148,b_proj_5146,y_5144) in
let y_5150 := nil() in
let y_5151 := nil() in
let sigma_proj_5152 := proj_10 1107 env_5107 in
let b_proj_5153 := proj_13 1107 env_5107 in
let y_proj_5154 := proj_0 1107 env_5107 in
let env_5155 := con_902(y_proj_5154) in
let y_wrapper_clo_5156 := con_15(y_wrapper_301,env_5155) in
let env_5157 := con_186(y_wrapper_clo_5156) in
let y_5158 := app fold_left_uncurried_106<4>(env_5157,sigma_proj_5152,b_proj_5153) in
let y_5159 := PosSpaceClause(y_5150,y_5151,y_5158) in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5160 := proj_6 1107 env_5107 in
let t_proj_5161 := proj_15 1107 env_5107 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_code_5162 := proj_0 15 CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5160 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_env_5163 := proj_1 15 CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5160 in
let y_5164 := app CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_code_5162<4>(CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_env_5163,y_5159,t_proj_5161) in
let y_5165 := nil() in
let y_5166 := nil() in
let sigma_proj_5167 := proj_10 1107 env_5107 in
let b_proj_5168 := proj_13 1107 env_5107 in
let y_proj_5169 := proj_0 1107 env_5107 in
let env_5170 := con_902(y_proj_5169) in
let y_wrapper_clo_5171 := con_15(y_wrapper_301,env_5170) in
let env_5172 := con_186(y_wrapper_clo_5171) in
let y_5173 := app fold_left_uncurried_106<4>(env_5172,sigma_proj_5167,b_proj_5168) in
let y_5174 := PosSpaceClause(y_5165,y_5166,y_5173) in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5175 := proj_6 1107 env_5107 in
let t_proj_5176 := proj_15 1107 env_5107 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_code_5177 := proj_0 15 CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5175 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_env_5178 := proj_1 15 CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5175 in
let y_5179 := app CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_code_5177<4>(CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_env_5178,y_5174,t_proj_5176) in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5180 := proj_1 1107 env_5107 in
let nc_proj_5181 := proj_9 1107 env_5107 in
let b_proj_5182 := proj_13 1107 env_5107 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_code_5183 := proj_0 15 CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5180 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_env_5184 := proj_1 15 CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5180 in
let y_5185 := app CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_code_5183<4>(CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_env_5184,nc_proj_5181,b_proj_5182) in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5186 := proj_6 1107 env_5107 in
let t_proj_5187 := proj_15 1107 env_5107 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_code_5188 := proj_0 15 CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5186 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_env_5189 := proj_1 15 CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5186 in
let y_5190 := app CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_code_5188<4>(CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_env_5189,y_5185,t_proj_5187) in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_proj_5191 := proj_7 1107 env_5107 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_code_5192 := proj_0 15 CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_proj_5191 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_env_5193 := proj_1 15 CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_proj_5191 in
let y_5194 := app CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_code_5192<4>(CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_env_5193,y_5190,y_5164) in
let CertiCoq.Benchmarks.lib.vs.VeriStar.pureb_wrapperbogus_env_5196 := con_1132() in
let CertiCoq.Benchmarks.lib.vs.VeriStar.pureb_wrapper_clo_5197 := con_15(CertiCoq.Benchmarks.lib.vs.VeriStar.pureb_wrapper_132,CertiCoq.Benchmarks.lib.vs.VeriStar.pureb_wrapperbogus_env_5196) in
let CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_5198 := proj_2 1107 env_5107 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_5199 := proj_16 1107 env_5107 in
let y_5200 := app CertiCoq.Benchmarks.lib.vs.M.filter_uncurried_known_248<104>(y_5194,CertiCoq.Benchmarks.lib.vs.VeriStar.pureb_wrapper_clo_5197,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_5198,CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_5199) in
let y_5201 := nil() in
let y_5202 := nil() in
let sigma_proj_5203 := proj_10 1107 env_5107 in
let b_proj_5204 := proj_13 1107 env_5107 in
let y_proj_5205 := proj_0 1107 env_5107 in
let env_5206 := con_902(y_proj_5205) in
let y_wrapper_clo_5207 := con_15(y_wrapper_301,env_5206) in
let env_5208 := con_186(y_wrapper_clo_5207) in
let y_5209 := app fold_left_uncurried_106<4>(env_5208,sigma_proj_5203,b_proj_5204) in
let y_5210 := PosSpaceClause(y_5201,y_5202,y_5209) in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5211 := proj_6 1107 env_5107 in
let t_proj_5212 := proj_15 1107 env_5107 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_code_5213 := proj_0 15 CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5211 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_env_5214 := proj_1 15 CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5211 in
let y_5215 := app CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_code_5213<4>(CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_env_5214,y_5210,t_proj_5212) in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_5216 := proj_5 1107 env_5107 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_code_5217 := proj_0 15 CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_5216 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_env_5218 := proj_1 15 CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_5216 in
let y_5219 := app CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_code_5217<3>(CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_env_5218,y_5215) in
let CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_5220 := proj_4 1107 env_5107 in
let b_proj_5221 := proj_12 1107 env_5107 in
let CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_code_5222 := proj_0 15 CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_5220 in
let CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_env_5223 := proj_1 15 CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_5220 in
let y_5224 := app CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_code_5222<4>(CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_env_5223,b_proj_5221,y_5219) in
let CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_5225 := proj_4 1107 env_5107 in
let CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_code_5226 := proj_0 15 CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_5225 in
let CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_env_5227 := proj_1 15 CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_5225 in
let y_5228 := app CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_code_5226<4>(CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_env_5227,y_5224,y_5200) in
let CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_proj_5229 := proj_3 1107 env_5107 in
let CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_code_5230 := proj_0 15 CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_proj_5229 in
let CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_env_5231 := proj_1 15 CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_proj_5229 in
let y_5232 := app CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_code_5230<4>(CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_env_5231,y_5228,y_5149) in
let y_5234 := app CertiCoq.Benchmarks.lib.vs.isEq_known_211<314>(y_5232) in
let y_5235 := app f_case_371<19>(env_5125,y_5234) in
let y_5236 := con_99() in
let y_code_5237 := proj_0 15 y_5235 in
let y_env_5238 := proj_1 15 y_5235 in
y_code_5237<3>(y_env_5238,y_5236)
fun f_case_371<19>(env_5239,s_5240) :=
case s_5240 of {
| true =>
let m_proj_5241 := proj_13 1108 env_5239 in
let env_5242 := con_1110(m_proj_5241) in
let y_wrapper_clo_5243 := con_15(y_wrapper_372,env_5242) in
halt y_wrapper_clo_5243
| false =>
let y_proj_5244 := proj_0 1108 env_5239 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5245 := proj_1 1108 env_5239 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_5246 := proj_2 1108 env_5239 in
let CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_5247 := proj_3 1108 env_5239 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_5248 := proj_4 1108 env_5239 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5249 := proj_5 1108 env_5239 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_proj_5250 := proj_6 1108 env_5239 in
let hrec_uncurried_uncurried_proj_5251 := proj_7 1108 env_5239 in
let nc_proj_5252 := proj_8 1108 env_5239 in
let sigma_proj_5253 := proj_9 1108 env_5239 in
let n_proj_5254 := proj_10 1108 env_5239 in
let b_proj_5255 := proj_11 1108 env_5239 in
let b_proj_5256 := proj_12 1108 env_5239 in
let t_proj_5257 := proj_14 1108 env_5239 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_5258 := proj_15 1108 env_5239 in
let env_5259 := con_1112(y_proj_5244,CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5245,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_5246,CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_5247,CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_5248,CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5249,CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_proj_5250,hrec_uncurried_uncurried_proj_5251,nc_proj_5252,sigma_proj_5253,n_proj_5254,b_proj_5255,b_proj_5256,t_proj_5257,CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_5258) in
let y_clo_5260 := con_15(y_373,env_5259) in
halt y_clo_5260
}
fun y_wrapper_372<3>(env_5261,teq6_5262) :=
let m_proj_5263 := proj_0 1110 env_5261 in
let y_5264 := C_example(m_proj_5263) in
let y_5265 := con_99() in
let y_5266 := exist(y_5264,y_5265) in
halt y_5266
fun y_373<3>(env_5267,teq6_5268) :=
let env_5272 := con_1118() in
let y_wrapper_clo_5273 := con_15(y_wrapper_375,env_5272) in
let n_proj_5275 := proj_10 1112 env_5267 in
let y_5276 := app Coq.PArith.BinPosDef.Pos.pred_known_217<315>(n_proj_5275) in
let sigma_proj_5277 := proj_9 1112 env_5267 in
let b_proj_5278 := proj_12 1112 env_5267 in
let y_proj_5279 := proj_0 1112 env_5267 in
let env_5280 := con_902(y_proj_5279) in
let y_wrapper_clo_5281 := con_15(y_wrapper_301,env_5280) in
let env_5282 := con_186(y_wrapper_clo_5281) in
let y_5283 := app fold_left_uncurried_106<4>(env_5282,sigma_proj_5277,b_proj_5278) in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5284 := proj_1 1112 env_5267 in
let nc_proj_5285 := proj_8 1112 env_5267 in
let b_proj_5286 := proj_12 1112 env_5267 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_code_5287 := proj_0 15 CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5284 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_env_5288 := proj_1 15 CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5284 in
let y_5289 := app CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_code_5287<4>(CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_env_5288,nc_proj_5285,b_proj_5286) in
let hrec_uncurried_uncurried_proj_5290 := proj_7 1112 env_5267 in
let hrec_uncurried_uncurried_code_5291 := proj_0 15 hrec_uncurried_uncurried_proj_5290 in
let hrec_uncurried_uncurried_env_5292 := proj_1 15 hrec_uncurried_uncurried_proj_5290 in
let y_5293 := app hrec_uncurried_uncurried_code_5291<5>(hrec_uncurried_uncurried_env_5292,y_5289,y_5283,y_5276) in
let y_5294 := nil() in
let y_5295 := nil() in
let sigma_proj_5296 := proj_9 1112 env_5267 in
let b_proj_5297 := proj_12 1112 env_5267 in
let y_proj_5298 := proj_0 1112 env_5267 in
let env_5299 := con_902(y_proj_5298) in
let y_wrapper_clo_5300 := con_15(y_wrapper_301,env_5299) in
let env_5301 := con_186(y_wrapper_clo_5300) in
let y_5302 := app fold_left_uncurried_106<4>(env_5301,sigma_proj_5296,b_proj_5297) in
let y_5303 := PosSpaceClause(y_5294,y_5295,y_5302) in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5304 := proj_5 1112 env_5267 in
let t_proj_5305 := proj_13 1112 env_5267 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_code_5306 := proj_0 15 CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5304 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_env_5307 := proj_1 15 CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5304 in
let y_5308 := app CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_code_5306<4>(CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_env_5307,y_5303,t_proj_5305) in
let y_5309 := nil() in
let y_5310 := nil() in
let sigma_proj_5311 := proj_9 1112 env_5267 in
let b_proj_5312 := proj_12 1112 env_5267 in
let y_proj_5313 := proj_0 1112 env_5267 in
let env_5314 := con_902(y_proj_5313) in
let y_wrapper_clo_5315 := con_15(y_wrapper_301,env_5314) in
let env_5316 := con_186(y_wrapper_clo_5315) in
let y_5317 := app fold_left_uncurried_106<4>(env_5316,sigma_proj_5311,b_proj_5312) in
let y_5318 := PosSpaceClause(y_5309,y_5310,y_5317) in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5319 := proj_5 1112 env_5267 in
let t_proj_5320 := proj_13 1112 env_5267 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_code_5321 := proj_0 15 CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5319 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_env_5322 := proj_1 15 CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5319 in
let y_5323 := app CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_code_5321<4>(CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_env_5322,y_5318,t_proj_5320) in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5324 := proj_1 1112 env_5267 in
let nc_proj_5325 := proj_8 1112 env_5267 in
let b_proj_5326 := proj_12 1112 env_5267 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_code_5327 := proj_0 15 CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5324 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_env_5328 := proj_1 15 CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5324 in
let y_5329 := app CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_code_5327<4>(CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_env_5328,nc_proj_5325,b_proj_5326) in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5330 := proj_5 1112 env_5267 in
let t_proj_5331 := proj_13 1112 env_5267 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_code_5332 := proj_0 15 CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5330 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_env_5333 := proj_1 15 CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5330 in
let y_5334 := app CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_code_5332<4>(CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_env_5333,y_5329,t_proj_5331) in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_proj_5335 := proj_6 1112 env_5267 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_code_5336 := proj_0 15 CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_proj_5335 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_env_5337 := proj_1 15 CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_proj_5335 in
let y_5338 := app CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_code_5336<4>(CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_env_5337,y_5334,y_5308) in
let CertiCoq.Benchmarks.lib.vs.VeriStar.pureb_wrapperbogus_env_5340 := con_1125() in
let CertiCoq.Benchmarks.lib.vs.VeriStar.pureb_wrapper_clo_5341 := con_15(CertiCoq.Benchmarks.lib.vs.VeriStar.pureb_wrapper_132,CertiCoq.Benchmarks.lib.vs.VeriStar.pureb_wrapperbogus_env_5340) in
let CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_5342 := proj_2 1112 env_5267 in
let CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_5343 := proj_14 1112 env_5267 in
let y_5344 := app CertiCoq.Benchmarks.lib.vs.M.filter_uncurried_known_248<104>(y_5338,CertiCoq.Benchmarks.lib.vs.VeriStar.pureb_wrapper_clo_5341,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_proj_5342,CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_proj_5343) in
let y_5345 := nil() in
let y_5346 := nil() in
let sigma_proj_5347 := proj_9 1112 env_5267 in
let b_proj_5348 := proj_12 1112 env_5267 in
let y_proj_5349 := proj_0 1112 env_5267 in
let env_5350 := con_902(y_proj_5349) in
let y_wrapper_clo_5351 := con_15(y_wrapper_301,env_5350) in
let env_5352 := con_186(y_wrapper_clo_5351) in
let y_5353 := app fold_left_uncurried_106<4>(env_5352,sigma_proj_5347,b_proj_5348) in
let y_5354 := PosSpaceClause(y_5345,y_5346,y_5353) in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5355 := proj_5 1112 env_5267 in
let t_proj_5356 := proj_13 1112 env_5267 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_code_5357 := proj_0 15 CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5355 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_env_5358 := proj_1 15 CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5355 in
let y_5359 := app CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_code_5357<4>(CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_env_5358,y_5354,t_proj_5356) in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_5360 := proj_4 1112 env_5267 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_code_5361 := proj_0 15 CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_5360 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_env_5362 := proj_1 15 CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_5360 in
let y_5363 := app CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_code_5361<3>(CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_env_5362,y_5359) in
let CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_5364 := proj_3 1112 env_5267 in
let b_proj_5365 := proj_11 1112 env_5267 in
let CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_code_5366 := proj_0 15 CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_5364 in
let CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_env_5367 := proj_1 15 CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_5364 in
let y_5368 := app CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_code_5366<4>(CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_env_5367,b_proj_5365,y_5363) in
let CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_5369 := proj_3 1112 env_5267 in
let CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_code_5370 := proj_0 15 CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_5369 in
let CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_env_5371 := proj_1 15 CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_5369 in
let y_5372 := app CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_code_5370<4>(CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_env_5371,y_5368,y_5344) in
let y_code_5373 := proj_0 15 y_5293 in
let y_env_5374 := proj_1 15 y_5293 in
let y_5375 := app y_code_5373<3>(y_env_5374,y_5372) in
let y_5376 := nil() in
let y_5377 := nil() in
let sigma_proj_5378 := proj_9 1112 env_5267 in
let b_proj_5379 := proj_12 1112 env_5267 in
let y_proj_5380 := proj_0 1112 env_5267 in
let env_5381 := con_902(y_proj_5380) in
let y_wrapper_clo_5382 := con_15(y_wrapper_301,env_5381) in
let env_5383 := con_186(y_wrapper_clo_5382) in
let y_5384 := app fold_left_uncurried_106<4>(env_5383,sigma_proj_5378,b_proj_5379) in
let y_5385 := PosSpaceClause(y_5376,y_5377,y_5384) in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5386 := proj_5 1112 env_5267 in
let t_proj_5387 := proj_13 1112 env_5267 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_code_5388 := proj_0 15 CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5386 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_env_5389 := proj_1 15 CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5386 in
let y_5390 := app CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_code_5388<4>(CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_env_5389,y_5385,t_proj_5387) in
let y_code_5391 := proj_0 15 y_5375 in
let y_env_5392 := proj_1 15 y_5375 in
let y_5393 := app y_code_5391<3>(y_env_5392,y_5390) in
let y_5394 := con_99() in
let y_code_5395 := proj_0 15 y_5393 in
let y_env_5396 := proj_1 15 y_5393 in
let y_5397 := app y_code_5395<3>(y_env_5396,y_5394) in
Coq.Init.Specif.sig_rect_uncurried_uncurried_uncurried_uncurried_known_238<19>(y_5397,y_wrapper_clo_5273)
fun y_wrapper_374<3>(env_5399,p1_5400) :=
let rec_res_proj_5401 := proj_0 1116 env_5399 in
let y_5402 := con_99() in
let y_5403 := exist(rec_res_proj_5401,y_5402) in
halt y_5403
fun y_wrapper_375<3>(env_5404,rec_res_5405) :=
let env_5406 := con_1116(rec_res_5405) in
let y_wrapper_clo_5407 := con_15(y_wrapper_374,env_5406) in
halt y_wrapper_clo_5407
fun y_wrapper_376<3>(env_5408,teq5_5409) :=
let m_proj_5410 := proj_0 1136 env_5408 in
let y_5411 := C_example(m_proj_5410) in
let y_5412 := con_99() in
let y_5413 := exist(y_5411,y_5412) in
halt y_5413
fun f_case_377<19>(env_5414,s_5415) :=
case s_5415 of {
| PureClause =>
let y_5416 := false() in
halt y_5416
| PosSpaceClause =>
let y_5417 := false() in
halt y_5417
| NegSpaceClause =>
let pi_plus_5418 := proj_0 135 s_5415 in
let pi_minus_5419 := proj_2 135 s_5415 in
let y_proj_5420 := proj_0 1139 env_5414 in
let y_wrapper_proj_5421 := proj_3 1139 env_5414 in
let env_5422 := con_1141(y_proj_5420,y_wrapper_proj_5421) in
let y_clo_5423 := con_15(y_378,env_5422) in
let y_wrapper_proj_5424 := proj_3 1139 env_5414 in
let y_5426 := app filter_known_130<19>(pi_plus_5418,y_wrapper_proj_5424) in
let y_proj_5427 := proj_1 1139 env_5414 in
let y_5429 := app fold_right_known_154<4>(y_proj_5427,y_5426,y_clo_5423) in
case y_5429 of {
| nil =>
let env_5430 := con_1158() in
let y_wrapper_clo_5431 := con_15(y_wrapper_382,env_5430) in
let y_proj_5432 := proj_1 1139 env_5414 in
let y_5434 := app fold_right_known_154<4>(y_proj_5432,pi_minus_5419,y_wrapper_clo_5431) in
let CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_proj_5435 := proj_2 1139 env_5414 in
forallb_known_174<19>(y_5434,CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_proj_5435)
| cons =>
let y_5437 := false() in
halt y_5437
}
}
fun y_378<3>(env_5438,ve_5439) :=
let y_5443 := app Coq.Init.Datatypes.fst_uncurried_uncurried_known_170<309>(ve_5439) in
let y_5447 := app Coq.Init.Datatypes.snd_uncurried_uncurried_known_171<310>(ve_5439) in
let y_proj_5448 := proj_0 1141 env_5438 in
let y_wrapper_proj_5449 := proj_1 1141 env_5438 in
let env_5450 := con_1147(y_proj_5448,y_5443,y_5447,y_wrapper_proj_5449) in
let y_wrapper_clo_5451 := con_15(y_wrapper_379,env_5450) in
halt y_wrapper_clo_5451
fun y_wrapper_379<3>(env_5452,a_5453) :=
let y_wrapper_proj_5454 := proj_3 1147 env_5452 in
let y_proj_5455 := proj_1 1147 env_5452 in
let y_proj_5456 := proj_2 1147 env_5452 in
let env_5457 := con_413(y_proj_5456,y_proj_5455) in
let y_wrapper_clo_5458 := con_15(y_wrapper_169,env_5457) in
let y_5460 := app map_known_133<19>(a_5453,y_wrapper_clo_5458) in
filter_known_130<19>(y_5460,y_wrapper_proj_5454)
fun y_known_380<323>(ve_5463) :=
let y_5467 := app Coq.Init.Datatypes.fst_uncurried_uncurried_known_170<309>(ve_5463) in
let y_5471 := app Coq.Init.Datatypes.snd_uncurried_uncurried_known_171<310>(ve_5463) in
let env_5472 := con_1156(y_5467,y_5471) in
let y_wrapper_clo_5473 := con_15(y_wrapper_381,env_5472) in
halt y_wrapper_clo_5473
fun y_wrapper_381<3>(env_5474,pa_5475) :=
let y_proj_5476 := proj_0 1156 env_5474 in
let y_proj_5477 := proj_1 1156 env_5474 in
let env_5478 := con_413(y_proj_5477,y_proj_5476) in
let y_wrapper_clo_5479 := con_15(y_wrapper_169,env_5478) in
map_known_133<19>(pa_5475,y_wrapper_clo_5479)
fun y_wrapper_382<3>(env_5481,ve_5482) :=
y_known_380<323>(ve_5482)
fun y_383<3>(env_5484,teq4_5485) :=
let env_5489 := con_1167() in
let y_wrapper_clo_5490 := con_15(y_wrapper_385,env_5489) in
let n_proj_5492 := proj_8 1161 env_5484 in
let y_5493 := app Coq.PArith.BinPosDef.Pos.pred_known_217<315>(n_proj_5492) in
let sigma_proj_5494 := proj_7 1161 env_5484 in
let b_proj_5495 := proj_10 1161 env_5484 in
let y_proj_5496 := proj_0 1161 env_5484 in
let env_5497 := con_902(y_proj_5496) in
let y_wrapper_clo_5498 := con_15(y_wrapper_301,env_5497) in
let env_5499 := con_186(y_wrapper_clo_5498) in
let y_5500 := app fold_left_uncurried_106<4>(env_5499,sigma_proj_5494,b_proj_5495) in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5501 := proj_1 1161 env_5484 in
let nc_proj_5502 := proj_6 1161 env_5484 in
let b_proj_5503 := proj_10 1161 env_5484 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_code_5504 := proj_0 15 CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5501 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_env_5505 := proj_1 15 CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5501 in
let y_5506 := app CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_code_5504<4>(CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_env_5505,nc_proj_5502,b_proj_5503) in
let hrec_uncurried_uncurried_proj_5507 := proj_5 1161 env_5484 in
let hrec_uncurried_uncurried_code_5508 := proj_0 15 hrec_uncurried_uncurried_proj_5507 in
let hrec_uncurried_uncurried_env_5509 := proj_1 15 hrec_uncurried_uncurried_proj_5507 in
let y_5510 := app hrec_uncurried_uncurried_code_5508<5>(hrec_uncurried_uncurried_env_5509,y_5506,y_5500,y_5493) in
let y_5511 := nil() in
let y_5512 := nil() in
let sigma_proj_5513 := proj_7 1161 env_5484 in
let b_proj_5514 := proj_10 1161 env_5484 in
let y_proj_5515 := proj_0 1161 env_5484 in
let env_5516 := con_902(y_proj_5515) in
let y_wrapper_clo_5517 := con_15(y_wrapper_301,env_5516) in
let env_5518 := con_186(y_wrapper_clo_5517) in
let y_5519 := app fold_left_uncurried_106<4>(env_5518,sigma_proj_5513,b_proj_5514) in
let y_5520 := PosSpaceClause(y_5511,y_5512,y_5519) in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5521 := proj_4 1161 env_5484 in
let t_proj_5522 := proj_11 1161 env_5484 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_code_5523 := proj_0 15 CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5521 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_env_5524 := proj_1 15 CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5521 in
let y_5525 := app CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_code_5523<4>(CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_env_5524,y_5520,t_proj_5522) in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_5526 := proj_3 1161 env_5484 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_code_5527 := proj_0 15 CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_5526 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_env_5528 := proj_1 15 CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_proj_5526 in
let y_5529 := app CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_code_5527<3>(CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_env_5528,y_5525) in
let CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_5530 := proj_2 1161 env_5484 in
let b_proj_5531 := proj_9 1161 env_5484 in
let CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_code_5532 := proj_0 15 CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_5530 in
let CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_env_5533 := proj_1 15 CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_proj_5530 in
let y_5534 := app CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_code_5532<4>(CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_env_5533,b_proj_5531,y_5529) in
let y_code_5535 := proj_0 15 y_5510 in
let y_env_5536 := proj_1 15 y_5510 in
let y_5537 := app y_code_5535<3>(y_env_5536,y_5534) in
let y_5538 := nil() in
let y_5539 := nil() in
let sigma_proj_5540 := proj_7 1161 env_5484 in
let b_proj_5541 := proj_10 1161 env_5484 in
let y_proj_5542 := proj_0 1161 env_5484 in
let env_5543 := con_902(y_proj_5542) in
let y_wrapper_clo_5544 := con_15(y_wrapper_301,env_5543) in
let env_5545 := con_186(y_wrapper_clo_5544) in
let y_5546 := app fold_left_uncurried_106<4>(env_5545,sigma_proj_5540,b_proj_5541) in
let y_5547 := PosSpaceClause(y_5538,y_5539,y_5546) in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5548 := proj_4 1161 env_5484 in
let t_proj_5549 := proj_11 1161 env_5484 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_code_5550 := proj_0 15 CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5548 in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_env_5551 := proj_1 15 CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_proj_5548 in
let y_5552 := app CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_code_5550<4>(CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_env_5551,y_5547,t_proj_5549) in
let y_code_5553 := proj_0 15 y_5537 in
let y_env_5554 := proj_1 15 y_5537 in
let y_5555 := app y_code_5553<3>(y_env_5554,y_5552) in
let y_5556 := con_99() in
let y_code_5557 := proj_0 15 y_5555 in
let y_env_5558 := proj_1 15 y_5555 in
let y_5559 := app y_code_5557<3>(y_env_5558,y_5556) in
Coq.Init.Specif.sig_rect_uncurried_uncurried_uncurried_uncurried_known_238<19>(y_5559,y_wrapper_clo_5490)
fun y_wrapper_384<3>(env_5561,p1_5562) :=
let rec_res_proj_5563 := proj_0 1165 env_5561 in
let y_5564 := con_99() in
let y_5565 := exist(rec_res_proj_5563,y_5564) in
halt y_5565
fun y_wrapper_385<3>(env_5566,rec_res_5567) :=
let env_5568 := con_1165(rec_res_5567) in
let y_wrapper_clo_5569 := con_15(y_wrapper_384,env_5568) in
halt y_wrapper_clo_5569
fun y_wrapper_386<3>(env_5570,teq0_5571) :=
let cl_proj_5572 := proj_1 1179 env_5570 in
let l_proj_5573 := proj_0 1179 env_5570 in
let y_5574 := Aborted(l_proj_5573,cl_proj_5572) in
let y_5575 := con_99() in
let y_5576 := exist(y_5574,y_5575) in
halt y_5576
fun y_wrapper_387<3>(env_5577,teq1_5578) :=
let cl_proj_5579 := proj_1 1181 env_5577 in
let l_proj_5580 := proj_0 1181 env_5577 in
let env_5581 := con_1179(l_proj_5580,cl_proj_5579) in
let y_wrapper_clo_5582 := con_15(y_wrapper_386,env_5581) in
halt y_wrapper_clo_5582
fun y_wrapper_388<3>(env_5583,teq2_5584) :=
let cl_proj_5585 := proj_1 1183 env_5583 in
let l_proj_5586 := proj_0 1183 env_5583 in
let env_5587 := con_1181(l_proj_5586,cl_proj_5585) in
let y_wrapper_clo_5588 := con_15(y_wrapper_387,env_5587) in
halt y_wrapper_clo_5588
fun y_wrapper_389<3>(env_5589,teq3_5590) :=
let cl_proj_5591 := proj_0 1185 env_5589 in
let l_proj_5592 := proj_1 1185 env_5589 in
let env_5593 := con_1183(l_proj_5592,cl_proj_5591) in
let y_wrapper_clo_5594 := con_15(y_wrapper_388,env_5593) in
halt y_wrapper_clo_5594
fun f_case_known_390<324>(s_5596) :=
case s_5596 of {
| exist =>
let v_5597 := proj_0 105 s_5596 in
halt v_5597
}
fun hrec_uncurried_uncurried_uncurried_391<6>(env_5598,Acc_n_5599,l_5600,units_5601,n_5602) :=
let CertiCoq.Benchmarks.lib.vs.var2_proj_5603 := proj_0 1192 env_5598 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_5604 := proj_1 1192 env_5598 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_5605 := proj_2 1192 env_5598 in
let y_proj_5606 := proj_3 1192 env_5598 in
let CertiCoq.Benchmarks.lib.vs.compare_clause_proj_5607 := proj_4 1192 env_5598 in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_5608 := proj_5 1192 env_5598 in
let CertiCoq.Benchmarks.lib.vs.M.empty_proj_5609 := proj_6 1192 env_5598 in
let CertiCoq.Benchmarks.lib.vs.Superposition.delete_resolved_proj_5610 := proj_7 1192 env_5598 in
let CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_proj_5611 := proj_8 1192 env_5598 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5612 := proj_9 1192 env_5598 in
let CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_5613 := proj_10 1192 env_5598 in
let hrec_uncurried_uncurried_uncurried_clo_5614 := con_15(hrec_uncurried_uncurried_uncurried_391,env_5598) in
let CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_5615 := proj_11 1192 env_5598 in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_5616 := proj_12 1192 env_5598 in
let CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_5617 := proj_13 1192 env_5598 in
let env_5618 := con_1193(CertiCoq.Benchmarks.lib.vs.var2_proj_5603,CertiCoq.Benchmarks.lib.vs.var1_proj_5604,CertiCoq.Benchmarks.lib.vs.var0_proj_5605,y_proj_5606,CertiCoq.Benchmarks.lib.vs.compare_clause_proj_5607,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_5608,CertiCoq.Benchmarks.lib.vs.M.empty_proj_5609,CertiCoq.Benchmarks.lib.vs.Superposition.delete_resolved_proj_5610,CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_proj_5611,CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5612,CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_5613,hrec_uncurried_uncurried_uncurried_clo_5614,l_5600,units_5601,n_5602,CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_5615,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_5616,CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_5617) in
let y_5619 := xH() in
let y_5621 := app eqb_uncurried_known_145<19>(y_5619,n_5602) in
let y_5622 := app f_case_392<19>(env_5618,y_5621) in
let y_5623 := con_99() in
let y_code_5624 := proj_0 15 y_5622 in
let y_env_5625 := proj_1 15 y_5622 in
y_code_5624<3>(y_env_5625,y_5623)
fun f_case_392<19>(env_5626,s_5627) :=
case s_5627 of {
| true =>
let CertiCoq.Benchmarks.lib.vs.M.empty_proj_5628 := proj_6 1193 env_5626 in
let l_proj_5629 := proj_12 1193 env_5626 in
let units_proj_5630 := proj_13 1193 env_5626 in
let env_5631 := con_1195(CertiCoq.Benchmarks.lib.vs.M.empty_proj_5628,l_proj_5629,units_proj_5630) in
let y_wrapper_clo_5632 := con_15(y_wrapper_393,env_5631) in
halt y_wrapper_clo_5632
| false =>
let CertiCoq.Benchmarks.lib.vs.var2_proj_5633 := proj_0 1193 env_5626 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_5634 := proj_1 1193 env_5626 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_5635 := proj_2 1193 env_5626 in
let y_proj_5636 := proj_3 1193 env_5626 in
let CertiCoq.Benchmarks.lib.vs.compare_clause_proj_5637 := proj_4 1193 env_5626 in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_5638 := proj_5 1193 env_5626 in
let CertiCoq.Benchmarks.lib.vs.M.empty_proj_5639 := proj_6 1193 env_5626 in
let CertiCoq.Benchmarks.lib.vs.Superposition.delete_resolved_proj_5640 := proj_7 1193 env_5626 in
let CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_proj_5641 := proj_8 1193 env_5626 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5642 := proj_9 1193 env_5626 in
let CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_5643 := proj_10 1193 env_5626 in
let hrec_uncurried_uncurried_uncurried_proj_5644 := proj_11 1193 env_5626 in
let l_proj_5645 := proj_12 1193 env_5626 in
let units_proj_5646 := proj_13 1193 env_5626 in
let n_proj_5647 := proj_14 1193 env_5626 in
let CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_5648 := proj_15 1193 env_5626 in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_5649 := proj_16 1193 env_5626 in
let CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_5650 := proj_17 1193 env_5626 in
let env_5651 := con_1197(CertiCoq.Benchmarks.lib.vs.var2_proj_5633,CertiCoq.Benchmarks.lib.vs.var1_proj_5634,CertiCoq.Benchmarks.lib.vs.var0_proj_5635,y_proj_5636,CertiCoq.Benchmarks.lib.vs.compare_clause_proj_5637,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_5638,CertiCoq.Benchmarks.lib.vs.M.empty_proj_5639,CertiCoq.Benchmarks.lib.vs.Superposition.delete_resolved_proj_5640,CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_proj_5641,CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5642,CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_5643,hrec_uncurried_uncurried_uncurried_proj_5644,l_proj_5645,units_proj_5646,n_proj_5647,CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_5648,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_5649,CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_5650) in
let y_clo_5652 := con_15(y_394,env_5651) in
halt y_clo_5652
}
fun y_wrapper_393<3>(env_5653,teq_5654) :=
let CertiCoq.Benchmarks.lib.vs.M.empty_proj_5655 := proj_0 1195 env_5653 in
let l_proj_5656 := proj_1 1195 env_5653 in
let units_proj_5657 := proj_2 1195 env_5653 in
let y_5658 := Aborted(l_proj_5656) in
let y_5659 := pair(y_5658,units_proj_5657) in
let y_5660 := pair(y_5659,CertiCoq.Benchmarks.lib.vs.M.empty_proj_5655) in
let y_5661 := pair(y_5660,CertiCoq.Benchmarks.lib.vs.M.empty_proj_5655) in
let y_5662 := con_99() in
let y_5663 := exist(y_5661,y_5662) in
halt y_5663
fun y_394<3>(env_5664,teq_5665) :=
let CertiCoq.Benchmarks.lib.vs.var2_proj_5666 := proj_0 1197 env_5664 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_5667 := proj_1 1197 env_5664 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_5668 := proj_2 1197 env_5664 in
let y_proj_5669 := proj_3 1197 env_5664 in
let CertiCoq.Benchmarks.lib.vs.compare_clause_proj_5670 := proj_4 1197 env_5664 in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_5671 := proj_5 1197 env_5664 in
let CertiCoq.Benchmarks.lib.vs.M.empty_proj_5672 := proj_6 1197 env_5664 in
let CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_proj_5673 := proj_8 1197 env_5664 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5674 := proj_9 1197 env_5664 in
let CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_5675 := proj_10 1197 env_5664 in
let hrec_uncurried_uncurried_uncurried_proj_5676 := proj_11 1197 env_5664 in
let l_proj_5677 := proj_12 1197 env_5664 in
let units_proj_5678 := proj_13 1197 env_5664 in
let n_proj_5679 := proj_14 1197 env_5664 in
let CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_5680 := proj_15 1197 env_5664 in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_5681 := proj_16 1197 env_5664 in
let CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_5682 := proj_17 1197 env_5664 in
let env_5683 := con_1198(CertiCoq.Benchmarks.lib.vs.var2_proj_5666,CertiCoq.Benchmarks.lib.vs.var1_proj_5667,CertiCoq.Benchmarks.lib.vs.var0_proj_5668,y_proj_5669,CertiCoq.Benchmarks.lib.vs.compare_clause_proj_5670,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_5671,CertiCoq.Benchmarks.lib.vs.M.empty_proj_5672,CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_proj_5673,CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5674,CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_5675,hrec_uncurried_uncurried_uncurried_proj_5676,l_proj_5677,units_proj_5678,n_proj_5679,CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_5680,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_5681,CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_5682) in
let CertiCoq.Benchmarks.lib.vs.Superposition.delete_resolved_proj_5684 := proj_7 1197 env_5664 in
let l_proj_5685 := proj_12 1197 env_5664 in
let y_5687 := app map_known_133<19>(l_proj_5685,CertiCoq.Benchmarks.lib.vs.Superposition.delete_resolved_proj_5684) in
let CertiCoq.Benchmarks.lib.vs.Superposition.is_empty_clause_wrapperbogus_env_5688 := con_1390() in
let CertiCoq.Benchmarks.lib.vs.Superposition.is_empty_clause_wrapper_clo_5689 := con_15(CertiCoq.Benchmarks.lib.vs.Superposition.is_empty_clause_wrapper_150,CertiCoq.Benchmarks.lib.vs.Superposition.is_empty_clause_wrapperbogus_env_5688) in
let y_5691 := app existsb_known_148<19>(y_5687,CertiCoq.Benchmarks.lib.vs.Superposition.is_empty_clause_wrapper_clo_5689) in
let y_5692 := app f_case_395<19>(env_5683,y_5691) in
let y_5693 := con_99() in
let y_code_5694 := proj_0 15 y_5692 in
let y_env_5695 := proj_1 15 y_5692 in
y_code_5694<3>(y_env_5695,y_5693)
fun f_case_395<19>(env_5696,s_5697) :=
case s_5697 of {
| true =>
let CertiCoq.Benchmarks.lib.vs.M.empty_proj_5698 := proj_6 1198 env_5696 in
let units_proj_5699 := proj_12 1198 env_5696 in
let env_5700 := con_1200(CertiCoq.Benchmarks.lib.vs.M.empty_proj_5698,units_proj_5699) in
let y_wrapper_clo_5701 := con_15(y_wrapper_396,env_5700) in
halt y_wrapper_clo_5701
| false =>
let CertiCoq.Benchmarks.lib.vs.var2_proj_5702 := proj_0 1198 env_5696 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_5703 := proj_1 1198 env_5696 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_5704 := proj_2 1198 env_5696 in
let y_proj_5705 := proj_3 1198 env_5696 in
let CertiCoq.Benchmarks.lib.vs.compare_clause_proj_5706 := proj_4 1198 env_5696 in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_5707 := proj_5 1198 env_5696 in
let CertiCoq.Benchmarks.lib.vs.M.empty_proj_5708 := proj_6 1198 env_5696 in
let CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_proj_5709 := proj_7 1198 env_5696 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5710 := proj_8 1198 env_5696 in
let CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_5711 := proj_9 1198 env_5696 in
let hrec_uncurried_uncurried_uncurried_proj_5712 := proj_10 1198 env_5696 in
let l_proj_5713 := proj_11 1198 env_5696 in
let units_proj_5714 := proj_12 1198 env_5696 in
let n_proj_5715 := proj_13 1198 env_5696 in
let CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_5716 := proj_14 1198 env_5696 in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_5717 := proj_15 1198 env_5696 in
let CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_5718 := proj_16 1198 env_5696 in
let env_5719 := con_1202(CertiCoq.Benchmarks.lib.vs.var2_proj_5702,CertiCoq.Benchmarks.lib.vs.var1_proj_5703,CertiCoq.Benchmarks.lib.vs.var0_proj_5704,y_proj_5705,CertiCoq.Benchmarks.lib.vs.compare_clause_proj_5706,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_5707,CertiCoq.Benchmarks.lib.vs.M.empty_proj_5708,CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_proj_5709,CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5710,CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_5711,hrec_uncurried_uncurried_uncurried_proj_5712,l_proj_5713,units_proj_5714,n_proj_5715,CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_5716,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_5717,CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_5718) in
let y_clo_5720 := con_15(y_397,env_5719) in
halt y_clo_5720
}
fun y_wrapper_396<3>(env_5721,teq0_5722) :=
let CertiCoq.Benchmarks.lib.vs.M.empty_proj_5723 := proj_0 1200 env_5721 in
let units_proj_5724 := proj_1 1200 env_5721 in
let y_5725 := Valid() in
let y_5726 := pair(y_5725,units_proj_5724) in
let y_5727 := pair(y_5726,CertiCoq.Benchmarks.lib.vs.M.empty_proj_5723) in
let y_5728 := pair(y_5727,CertiCoq.Benchmarks.lib.vs.M.empty_proj_5723) in
let y_5729 := con_99() in
let y_5730 := exist(y_5728,y_5729) in
halt y_5730
fun y_397<3>(env_5731,teq0_5732) :=
let CertiCoq.Benchmarks.lib.vs.var2_proj_5733 := proj_0 1202 env_5731 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_5734 := proj_1 1202 env_5731 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_5735 := proj_2 1202 env_5731 in
let y_proj_5736 := proj_3 1202 env_5731 in
let CertiCoq.Benchmarks.lib.vs.compare_clause_proj_5737 := proj_4 1202 env_5731 in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_5738 := proj_5 1202 env_5731 in
let CertiCoq.Benchmarks.lib.vs.M.empty_proj_5739 := proj_6 1202 env_5731 in
let CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_proj_5740 := proj_7 1202 env_5731 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5741 := proj_8 1202 env_5731 in
let CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_5742 := proj_9 1202 env_5731 in
let hrec_uncurried_uncurried_uncurried_proj_5743 := proj_10 1202 env_5731 in
let units_proj_5744 := proj_12 1202 env_5731 in
let n_proj_5745 := proj_13 1202 env_5731 in
let CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_5746 := proj_14 1202 env_5731 in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_5747 := proj_15 1202 env_5731 in
let CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_5748 := proj_16 1202 env_5731 in
let env_5749 := con_1203(CertiCoq.Benchmarks.lib.vs.var2_proj_5733,CertiCoq.Benchmarks.lib.vs.var1_proj_5734,CertiCoq.Benchmarks.lib.vs.var0_proj_5735,y_proj_5736,CertiCoq.Benchmarks.lib.vs.compare_clause_proj_5737,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_5738,CertiCoq.Benchmarks.lib.vs.M.empty_proj_5739,CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_proj_5740,CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5741,CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_5742,hrec_uncurried_uncurried_uncurried_proj_5743,units_proj_5744,n_proj_5745,CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_5746,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_5747,CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_5748) in
let l_proj_5751 := proj_11 1202 env_5731 in
let y_5752 := app partition_known_435<325>(l_proj_5751) in
let y_5753 := app f_case_398<19>(env_5749,y_5752) in
let y_5754 := con_99() in
let y_code_5755 := proj_0 15 y_5753 in
let y_env_5756 := proj_1 15 y_5753 in
y_code_5755<3>(y_env_5756,y_5754)
fun f_case_398<19>(env_5757,s_5758) :=
case s_5758 of {
| pair =>
let a_5759 := proj_0 147 s_5758 in
let b_5760 := proj_1 147 s_5758 in
let CertiCoq.Benchmarks.lib.vs.var2_proj_5761 := proj_0 1203 env_5757 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_5762 := proj_1 1203 env_5757 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_5763 := proj_2 1203 env_5757 in
let y_proj_5764 := proj_3 1203 env_5757 in
let CertiCoq.Benchmarks.lib.vs.compare_clause_proj_5765 := proj_4 1203 env_5757 in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_5766 := proj_5 1203 env_5757 in
let CertiCoq.Benchmarks.lib.vs.M.empty_proj_5767 := proj_6 1203 env_5757 in
let CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_proj_5768 := proj_7 1203 env_5757 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5769 := proj_8 1203 env_5757 in
let CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_5770 := proj_9 1203 env_5757 in
let hrec_uncurried_uncurried_uncurried_proj_5771 := proj_10 1203 env_5757 in
let units_proj_5772 := proj_11 1203 env_5757 in
let n_proj_5773 := proj_12 1203 env_5757 in
let CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_5774 := proj_13 1203 env_5757 in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_5775 := proj_14 1203 env_5757 in
let CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_5776 := proj_15 1203 env_5757 in
let env_5777 := con_1204(CertiCoq.Benchmarks.lib.vs.var2_proj_5761,CertiCoq.Benchmarks.lib.vs.var1_proj_5762,CertiCoq.Benchmarks.lib.vs.var0_proj_5763,y_proj_5764,CertiCoq.Benchmarks.lib.vs.compare_clause_proj_5765,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_5766,CertiCoq.Benchmarks.lib.vs.M.empty_proj_5767,CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_proj_5768,CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5769,CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_5770,hrec_uncurried_uncurried_uncurried_proj_5771,units_proj_5772,n_proj_5773,a_5759,b_5760,CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_5774,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_5775,CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_5776) in
let y_clo_5778 := con_15(y_399,env_5777) in
halt y_clo_5778
}
fun y_399<3>(env_5779,teq1_5780) :=
let CertiCoq.Benchmarks.lib.vs.var2_proj_5781 := proj_0 1204 env_5779 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_5782 := proj_1 1204 env_5779 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_5783 := proj_2 1204 env_5779 in
let y_proj_5784 := proj_3 1204 env_5779 in
let CertiCoq.Benchmarks.lib.vs.compare_clause_proj_5785 := proj_4 1204 env_5779 in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_5786 := proj_5 1204 env_5779 in
let CertiCoq.Benchmarks.lib.vs.M.empty_proj_5787 := proj_6 1204 env_5779 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5788 := proj_8 1204 env_5779 in
let CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_5789 := proj_9 1204 env_5779 in
let hrec_uncurried_uncurried_uncurried_proj_5790 := proj_10 1204 env_5779 in
let units_proj_5791 := proj_11 1204 env_5779 in
let n_proj_5792 := proj_12 1204 env_5779 in
let a_proj_5793 := proj_13 1204 env_5779 in
let b_proj_5794 := proj_14 1204 env_5779 in
let CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_5795 := proj_15 1204 env_5779 in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_5796 := proj_16 1204 env_5779 in
let CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_5797 := proj_17 1204 env_5779 in
let env_5798 := con_1205(CertiCoq.Benchmarks.lib.vs.var2_proj_5781,CertiCoq.Benchmarks.lib.vs.var1_proj_5782,CertiCoq.Benchmarks.lib.vs.var0_proj_5783,y_proj_5784,CertiCoq.Benchmarks.lib.vs.compare_clause_proj_5785,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_5786,CertiCoq.Benchmarks.lib.vs.M.empty_proj_5787,CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5788,CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_5789,hrec_uncurried_uncurried_uncurried_proj_5790,units_proj_5791,n_proj_5792,a_proj_5793,b_proj_5794,CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_5795,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_5796,CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_5797) in
let y_5799 := nil() in
let y_5800 := nil() in
let a_proj_5801 := proj_13 1204 env_5779 in
let CertiCoq.Benchmarks.lib.vs.var2_proj_5802 := proj_0 1204 env_5779 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_5803 := proj_1 1204 env_5779 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_5804 := proj_2 1204 env_5779 in
let y_proj_5805 := proj_3 1204 env_5779 in
let CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_5806 := proj_15 1204 env_5779 in
let env_5807 := con_573(CertiCoq.Benchmarks.lib.vs.var0_proj_5804,CertiCoq.Benchmarks.lib.vs.var1_proj_5803,CertiCoq.Benchmarks.lib.vs.var2_proj_5802) in
let env_5808 := con_576(CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_5806,y_proj_5805) in
let y_5809 := app cclose_aux_214<19>(env_5808,a_proj_5801) in
let y_clo_5810 := con_15(y_213,env_5807) in
let y_5812 := app map_known_133<19>(y_5809,y_clo_5810) in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5813 := proj_8 1204 env_5779 in
let env_5814 := con_1339(CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5813,y_5812) in
let y_wrapper_clo_5815 := con_15(y_wrapper_428,env_5814) in
let b_proj_5816 := proj_14 1204 env_5779 in
let y_5818 := app map_known_133<19>(b_proj_5816,y_wrapper_clo_5815) in
let CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_5819 := proj_17 1204 env_5779 in
let y_5821 := app filter_known_130<19>(y_5818,CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_5819) in
let y_proj_5822 := proj_3 1204 env_5779 in
let CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_proj_5823 := proj_7 1204 env_5779 in
let env_5824 := con_1342(y_proj_5822,CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_proj_5823) in
let y_5825 := app partial_mod_uncurried_uncurried_429<104>(env_5824,y_5821,y_5800,y_5799) in
let y_5826 := app f_case_400<19>(env_5798,y_5825) in
let y_5827 := con_99() in
let y_code_5828 := proj_0 15 y_5826 in
let y_env_5829 := proj_1 15 y_5826 in
y_code_5828<3>(y_env_5829,y_5827)
fun f_case_400<19>(env_5830,s_5831) :=
case s_5831 of {
| inl =>
let a_5832 := proj_0 108 s_5831 in
let CertiCoq.Benchmarks.lib.vs.var2_proj_5833 := proj_0 1205 env_5830 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_5834 := proj_1 1205 env_5830 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_5835 := proj_2 1205 env_5830 in
let y_proj_5836 := proj_3 1205 env_5830 in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_5837 := proj_5 1205 env_5830 in
let CertiCoq.Benchmarks.lib.vs.M.empty_proj_5838 := proj_6 1205 env_5830 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5839 := proj_7 1205 env_5830 in
let units_proj_5840 := proj_10 1205 env_5830 in
let a_proj_5841 := proj_12 1205 env_5830 in
let b_proj_5842 := proj_13 1205 env_5830 in
let CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_5843 := proj_14 1205 env_5830 in
let CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_5844 := proj_16 1205 env_5830 in
let env_5845 := con_1206(CertiCoq.Benchmarks.lib.vs.var2_proj_5833,CertiCoq.Benchmarks.lib.vs.var1_proj_5834,CertiCoq.Benchmarks.lib.vs.var0_proj_5835,y_proj_5836,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_5837,CertiCoq.Benchmarks.lib.vs.M.empty_proj_5838,CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5839,units_proj_5840,a_proj_5841,b_proj_5842,a_5832,CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_5843,CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_5844) in
let y_clo_5846 := con_15(y_401,env_5845) in
halt y_clo_5846
| inr =>
let b_5847 := proj_0 109 s_5831 in
let CertiCoq.Benchmarks.lib.vs.var2_proj_5848 := proj_0 1205 env_5830 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_5849 := proj_1 1205 env_5830 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_5850 := proj_2 1205 env_5830 in
let y_proj_5851 := proj_3 1205 env_5830 in
let CertiCoq.Benchmarks.lib.vs.compare_clause_proj_5852 := proj_4 1205 env_5830 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5853 := proj_7 1205 env_5830 in
let CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_5854 := proj_8 1205 env_5830 in
let hrec_uncurried_uncurried_uncurried_proj_5855 := proj_9 1205 env_5830 in
let units_proj_5856 := proj_10 1205 env_5830 in
let n_proj_5857 := proj_11 1205 env_5830 in
let a_proj_5858 := proj_12 1205 env_5830 in
let b_proj_5859 := proj_13 1205 env_5830 in
let CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_5860 := proj_14 1205 env_5830 in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_5861 := proj_15 1205 env_5830 in
let CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_5862 := proj_16 1205 env_5830 in
let env_5863 := con_1223(CertiCoq.Benchmarks.lib.vs.var2_proj_5848,CertiCoq.Benchmarks.lib.vs.var1_proj_5849,CertiCoq.Benchmarks.lib.vs.var0_proj_5850,y_proj_5851,CertiCoq.Benchmarks.lib.vs.compare_clause_proj_5852,CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5853,CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_5854,hrec_uncurried_uncurried_uncurried_proj_5855,units_proj_5856,n_proj_5857,a_proj_5858,b_proj_5859,b_5847,CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_5860,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_5861,CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_5862) in
let y_clo_5864 := con_15(y_407,env_5863) in
halt y_clo_5864
}
fun y_401<3>(env_5865,teq2_5866) :=
let CertiCoq.Benchmarks.lib.vs.var2_proj_5867 := proj_0 1206 env_5865 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_5868 := proj_1 1206 env_5865 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_5869 := proj_2 1206 env_5865 in
let y_proj_5870 := proj_3 1206 env_5865 in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_5871 := proj_4 1206 env_5865 in
let CertiCoq.Benchmarks.lib.vs.M.empty_proj_5872 := proj_5 1206 env_5865 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5873 := proj_6 1206 env_5865 in
let units_proj_5874 := proj_7 1206 env_5865 in
let a_proj_5875 := proj_8 1206 env_5865 in
let b_proj_5876 := proj_9 1206 env_5865 in
let CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_5877 := proj_11 1206 env_5865 in
let CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_5878 := proj_12 1206 env_5865 in
let env_5879 := con_1207(CertiCoq.Benchmarks.lib.vs.var2_proj_5867,CertiCoq.Benchmarks.lib.vs.var1_proj_5868,CertiCoq.Benchmarks.lib.vs.var0_proj_5869,y_proj_5870,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_5871,CertiCoq.Benchmarks.lib.vs.M.empty_proj_5872,CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5873,units_proj_5874,a_proj_5875,b_proj_5876,CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_5877,CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_5878) in
let a_proj_5880 := proj_10 1206 env_5865 in
let y_5881 := app f_case_402<19>(env_5879,a_proj_5880) in
let y_5882 := con_99() in
let y_code_5883 := proj_0 15 y_5881 in
let y_env_5884 := proj_1 15 y_5881 in
let y_5885 := app y_code_5883<3>(y_env_5884,y_5882) in
let y_5886 := con_99() in
let y_code_5887 := proj_0 15 y_5885 in
let y_env_5888 := proj_1 15 y_5885 in
y_code_5887<3>(y_env_5888,y_5886)
fun f_case_402<19>(env_5889,s_5890) :=
case s_5890 of {
| pair =>
let a_5891 := proj_0 147 s_5890 in
let b_5892 := proj_1 147 s_5890 in
let CertiCoq.Benchmarks.lib.vs.var2_proj_5893 := proj_0 1207 env_5889 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_5894 := proj_1 1207 env_5889 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_5895 := proj_2 1207 env_5889 in
let y_proj_5896 := proj_3 1207 env_5889 in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_5897 := proj_4 1207 env_5889 in
let CertiCoq.Benchmarks.lib.vs.M.empty_proj_5898 := proj_5 1207 env_5889 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5899 := proj_6 1207 env_5889 in
let units_proj_5900 := proj_7 1207 env_5889 in
let a_proj_5901 := proj_8 1207 env_5889 in
let b_proj_5902 := proj_9 1207 env_5889 in
let CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_5903 := proj_10 1207 env_5889 in
let CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_5904 := proj_11 1207 env_5889 in
let env_5905 := con_1208(CertiCoq.Benchmarks.lib.vs.var2_proj_5893,CertiCoq.Benchmarks.lib.vs.var1_proj_5894,CertiCoq.Benchmarks.lib.vs.var0_proj_5895,y_proj_5896,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_5897,CertiCoq.Benchmarks.lib.vs.M.empty_proj_5898,CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5899,units_proj_5900,a_proj_5901,b_proj_5902,a_5891,b_5892,CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_5903,CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_5904) in
let y_clo_5906 := con_15(y_403,env_5905) in
halt y_clo_5906
}
fun y_403<3>(env_5907,teq3_5908) :=
let y_uncurried_clo_5909 := con_15(y_uncurried_405,env_5907) in
let env_5910 := con_1210(y_uncurried_clo_5909,teq3_5908) in
let y_wrapper_clo_5911 := con_15(y_wrapper_404,env_5910) in
halt y_wrapper_clo_5911
fun y_wrapper_404<3>(env_5912,teq2_5913) :=
let y_uncurried_proj_5914 := proj_0 1210 env_5912 in
let teq3_proj_5915 := proj_1 1210 env_5912 in
let y_uncurried_code_5916 := proj_0 15 y_uncurried_proj_5914 in
let y_uncurried_env_5917 := proj_1 15 y_uncurried_proj_5914 in
y_uncurried_code_5916<4>(y_uncurried_env_5917,teq2_5913,teq3_proj_5915)
fun y_uncurried_405<4>(env_5918,teq2_5919,teq3_5920) :=
let b_proj_5921 := proj_11 1208 env_5918 in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_5922 := proj_4 1208 env_5918 in
let CertiCoq.Benchmarks.lib.vs.M.empty_proj_5923 := proj_5 1208 env_5918 in
let env_5924 := con_261(CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_5922) in
let y_wrapper_clo_5925 := con_15(y_wrapper_129,env_5924) in
let env_5926 := con_186(y_wrapper_clo_5925) in
let y_5927 := app fold_left_uncurried_106<4>(env_5926,CertiCoq.Benchmarks.lib.vs.M.empty_proj_5923,b_proj_5921) in
let a_proj_5928 := proj_10 1208 env_5918 in
let y_5929 := C_example(a_proj_5928,y_5927) in
let a_proj_5930 := proj_8 1208 env_5918 in
let CertiCoq.Benchmarks.lib.vs.var2_proj_5931 := proj_0 1208 env_5918 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_5932 := proj_1 1208 env_5918 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_5933 := proj_2 1208 env_5918 in
let y_proj_5934 := proj_3 1208 env_5918 in
let CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_5935 := proj_12 1208 env_5918 in
let env_5936 := con_573(CertiCoq.Benchmarks.lib.vs.var0_proj_5933,CertiCoq.Benchmarks.lib.vs.var1_proj_5932,CertiCoq.Benchmarks.lib.vs.var2_proj_5931) in
let env_5937 := con_576(CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_5935,y_proj_5934) in
let y_5938 := app cclose_aux_214<19>(env_5937,a_proj_5930) in
let y_clo_5939 := con_15(y_213,env_5936) in
let y_5941 := app map_known_133<19>(y_5938,y_clo_5939) in
let units_proj_5942 := proj_7 1208 env_5918 in
let y_5944 := app app_uncurried_known_143<19>(units_proj_5942,y_5941) in
let CertiCoq.Benchmarks.lib.vs.var2_proj_5945 := proj_0 1208 env_5918 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_5946 := proj_1 1208 env_5918 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_5947 := proj_2 1208 env_5918 in
let y_proj_5948 := proj_3 1208 env_5918 in
let CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_5949 := proj_12 1208 env_5918 in
let env_5950 := con_573(CertiCoq.Benchmarks.lib.vs.var0_proj_5947,CertiCoq.Benchmarks.lib.vs.var1_proj_5946,CertiCoq.Benchmarks.lib.vs.var2_proj_5945) in
let env_5951 := con_576(CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_5949,y_proj_5948) in
let y_5952 := app cclose_aux_214<19>(env_5951,y_5944) in
let y_clo_5953 := con_15(y_213,env_5950) in
let y_5955 := app map_known_133<19>(y_5952,y_clo_5953) in
let y_5956 := pair(y_5929,y_5955) in
let a_proj_5957 := proj_8 1208 env_5918 in
let CertiCoq.Benchmarks.lib.vs.var2_proj_5958 := proj_0 1208 env_5918 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_5959 := proj_1 1208 env_5918 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_5960 := proj_2 1208 env_5918 in
let y_proj_5961 := proj_3 1208 env_5918 in
let CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_5962 := proj_12 1208 env_5918 in
let env_5963 := con_573(CertiCoq.Benchmarks.lib.vs.var0_proj_5960,CertiCoq.Benchmarks.lib.vs.var1_proj_5959,CertiCoq.Benchmarks.lib.vs.var2_proj_5958) in
let env_5964 := con_576(CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_5962,y_proj_5961) in
let y_5965 := app cclose_aux_214<19>(env_5964,a_proj_5957) in
let y_clo_5966 := con_15(y_213,env_5963) in
let y_5968 := app map_known_133<19>(y_5965,y_clo_5966) in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5969 := proj_6 1208 env_5918 in
let env_5970 := con_1219(CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5969,y_5968) in
let y_wrapper_clo_5971 := con_15(y_wrapper_406,env_5970) in
let b_proj_5972 := proj_9 1208 env_5918 in
let y_5974 := app map_known_133<19>(b_proj_5972,y_wrapper_clo_5971) in
let CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_5975 := proj_13 1208 env_5918 in
let y_5977 := app filter_known_130<19>(y_5974,CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_5975) in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_5978 := proj_4 1208 env_5918 in
let CertiCoq.Benchmarks.lib.vs.M.empty_proj_5979 := proj_5 1208 env_5918 in
let env_5980 := con_261(CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_proj_5978) in
let y_wrapper_clo_5981 := con_15(y_wrapper_129,env_5980) in
let env_5982 := con_186(y_wrapper_clo_5981) in
let y_5983 := app fold_left_uncurried_106<4>(env_5982,CertiCoq.Benchmarks.lib.vs.M.empty_proj_5979,y_5977) in
let y_5984 := pair(y_5956,y_5983) in
let CertiCoq.Benchmarks.lib.vs.M.empty_proj_5985 := proj_5 1208 env_5918 in
let y_5986 := pair(y_5984,CertiCoq.Benchmarks.lib.vs.M.empty_proj_5985) in
let y_5987 := con_99() in
let y_5988 := exist(y_5986,y_5987) in
halt y_5988
fun y_wrapper_406<3>(env_5989,c_5990) :=
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5991 := proj_0 1219 env_5989 in
let y_proj_5992 := proj_1 1219 env_5989 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_code_5993 := proj_0 15 CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5991 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_env_5994 := proj_1 15 CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_5991 in
CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_code_5993<4>(CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_env_5994,c_5990,y_proj_5992)
fun y_407<3>(env_5995,teq2_5996) :=
let CertiCoq.Benchmarks.lib.vs.var2_proj_5997 := proj_0 1223 env_5995 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_5998 := proj_1 1223 env_5995 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_5999 := proj_2 1223 env_5995 in
let y_proj_6000 := proj_3 1223 env_5995 in
let CertiCoq.Benchmarks.lib.vs.compare_clause_proj_6001 := proj_4 1223 env_5995 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_6002 := proj_5 1223 env_5995 in
let CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_6003 := proj_6 1223 env_5995 in
let hrec_uncurried_uncurried_uncurried_proj_6004 := proj_7 1223 env_5995 in
let units_proj_6005 := proj_8 1223 env_5995 in
let n_proj_6006 := proj_9 1223 env_5995 in
let a_proj_6007 := proj_10 1223 env_5995 in
let b_proj_6008 := proj_11 1223 env_5995 in
let CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_6009 := proj_13 1223 env_5995 in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_6010 := proj_14 1223 env_5995 in
let CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_6011 := proj_15 1223 env_5995 in
let env_6012 := con_1224(CertiCoq.Benchmarks.lib.vs.var2_proj_5997,CertiCoq.Benchmarks.lib.vs.var1_proj_5998,CertiCoq.Benchmarks.lib.vs.var0_proj_5999,y_proj_6000,CertiCoq.Benchmarks.lib.vs.compare_clause_proj_6001,CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_6002,CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_6003,hrec_uncurried_uncurried_uncurried_proj_6004,units_proj_6005,n_proj_6006,a_proj_6007,b_proj_6008,CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_6009,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_6010,CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_6011) in
let b_proj_6013 := proj_12 1223 env_5995 in
let y_6014 := app f_case_408<19>(env_6012,b_proj_6013) in
let y_6015 := con_99() in
let y_code_6016 := proj_0 15 y_6014 in
let y_env_6017 := proj_1 15 y_6014 in
let y_6018 := app y_code_6016<3>(y_env_6017,y_6015) in
let y_6019 := con_99() in
let y_code_6020 := proj_0 15 y_6018 in
let y_env_6021 := proj_1 15 y_6018 in
y_code_6020<3>(y_env_6021,y_6019)
fun f_case_408<19>(env_6022,s_6023) :=
case s_6023 of {
| pair =>
let a_6024 := proj_0 147 s_6023 in
let b_6025 := proj_1 147 s_6023 in
let CertiCoq.Benchmarks.lib.vs.var2_proj_6026 := proj_0 1224 env_6022 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_6027 := proj_1 1224 env_6022 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_6028 := proj_2 1224 env_6022 in
let y_proj_6029 := proj_3 1224 env_6022 in
let CertiCoq.Benchmarks.lib.vs.compare_clause_proj_6030 := proj_4 1224 env_6022 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_6031 := proj_5 1224 env_6022 in
let CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_6032 := proj_6 1224 env_6022 in
let hrec_uncurried_uncurried_uncurried_proj_6033 := proj_7 1224 env_6022 in
let units_proj_6034 := proj_8 1224 env_6022 in
let n_proj_6035 := proj_9 1224 env_6022 in
let a_proj_6036 := proj_10 1224 env_6022 in
let b_proj_6037 := proj_11 1224 env_6022 in
let CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_6038 := proj_12 1224 env_6022 in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_6039 := proj_13 1224 env_6022 in
let CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_6040 := proj_14 1224 env_6022 in
let env_6041 := con_1225(CertiCoq.Benchmarks.lib.vs.var2_proj_6026,CertiCoq.Benchmarks.lib.vs.var1_proj_6027,CertiCoq.Benchmarks.lib.vs.var0_proj_6028,y_proj_6029,CertiCoq.Benchmarks.lib.vs.compare_clause_proj_6030,CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_6031,CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_6032,hrec_uncurried_uncurried_uncurried_proj_6033,units_proj_6034,n_proj_6035,a_proj_6036,b_proj_6037,a_6024,b_6025,CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_6038,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_6039,CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_6040) in
let y_clo_6042 := con_15(y_409,env_6041) in
halt y_clo_6042
}
fun y_409<3>(env_6043,teq3_6044) :=
let y_uncurried_clo_6045 := con_15(y_uncurried_411,env_6043) in
let env_6046 := con_1227(y_uncurried_clo_6045,teq3_6044) in
let y_wrapper_clo_6047 := con_15(y_wrapper_410,env_6046) in
halt y_wrapper_clo_6047
fun y_wrapper_410<3>(env_6048,teq2_6049) :=
let y_uncurried_proj_6050 := proj_0 1227 env_6048 in
let teq3_proj_6051 := proj_1 1227 env_6048 in
let y_uncurried_code_6052 := proj_0 15 y_uncurried_proj_6050 in
let y_uncurried_env_6053 := proj_1 15 y_uncurried_proj_6050 in
y_uncurried_code_6052<4>(y_uncurried_env_6053,teq2_6049,teq3_proj_6051)
fun y_uncurried_411<4>(env_6054,teq2_6055,teq3_6056) :=
let CertiCoq.Benchmarks.lib.vs.var2_proj_6057 := proj_0 1225 env_6054 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_6058 := proj_1 1225 env_6054 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_6059 := proj_2 1225 env_6054 in
let y_proj_6060 := proj_3 1225 env_6054 in
let CertiCoq.Benchmarks.lib.vs.compare_clause_proj_6061 := proj_4 1225 env_6054 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_6062 := proj_5 1225 env_6054 in
let CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_6063 := proj_6 1225 env_6054 in
let hrec_uncurried_uncurried_uncurried_proj_6064 := proj_7 1225 env_6054 in
let units_proj_6065 := proj_8 1225 env_6054 in
let n_proj_6066 := proj_9 1225 env_6054 in
let a_proj_6067 := proj_10 1225 env_6054 in
let b_proj_6068 := proj_11 1225 env_6054 in
let b_proj_6069 := proj_13 1225 env_6054 in
let CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_6070 := proj_14 1225 env_6054 in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_6071 := proj_15 1225 env_6054 in
let CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_6072 := proj_16 1225 env_6054 in
let env_6073 := con_1229(CertiCoq.Benchmarks.lib.vs.var2_proj_6057,CertiCoq.Benchmarks.lib.vs.var1_proj_6058,CertiCoq.Benchmarks.lib.vs.var0_proj_6059,y_proj_6060,CertiCoq.Benchmarks.lib.vs.compare_clause_proj_6061,CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_6062,CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_6063,hrec_uncurried_uncurried_uncurried_proj_6064,units_proj_6065,n_proj_6066,a_proj_6067,b_proj_6068,b_proj_6069,CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_6070,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_6071,CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_6072) in
let a_proj_6074 := proj_12 1225 env_6054 in
let y_6075 := app f_case_412<19>(env_6073,a_proj_6074) in
let y_6076 := con_99() in
let y_code_6077 := proj_0 15 y_6075 in
let y_env_6078 := proj_1 15 y_6075 in
let y_6079 := app y_code_6077<3>(y_env_6078,y_6076) in
let y_6080 := con_99() in
let y_code_6081 := proj_0 15 y_6079 in
let y_env_6082 := proj_1 15 y_6079 in
let y_6083 := app y_code_6081<3>(y_env_6082,y_6080) in
let y_6084 := con_99() in
let y_code_6085 := proj_0 15 y_6083 in
let y_env_6086 := proj_1 15 y_6083 in
y_code_6085<3>(y_env_6086,y_6084)
fun f_case_412<19>(env_6087,s_6088) :=
case s_6088 of {
| pair =>
let b_6089 := proj_1 147 s_6088 in
let CertiCoq.Benchmarks.lib.vs.var2_proj_6090 := proj_0 1229 env_6087 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_6091 := proj_1 1229 env_6087 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_6092 := proj_2 1229 env_6087 in
let y_proj_6093 := proj_3 1229 env_6087 in
let CertiCoq.Benchmarks.lib.vs.compare_clause_proj_6094 := proj_4 1229 env_6087 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_6095 := proj_5 1229 env_6087 in
let CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_6096 := proj_6 1229 env_6087 in
let hrec_uncurried_uncurried_uncurried_proj_6097 := proj_7 1229 env_6087 in
let units_proj_6098 := proj_8 1229 env_6087 in
let n_proj_6099 := proj_9 1229 env_6087 in
let a_proj_6100 := proj_10 1229 env_6087 in
let b_proj_6101 := proj_11 1229 env_6087 in
let b_proj_6102 := proj_12 1229 env_6087 in
let CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_6103 := proj_13 1229 env_6087 in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_6104 := proj_14 1229 env_6087 in
let CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_6105 := proj_15 1229 env_6087 in
let env_6106 := con_1230(CertiCoq.Benchmarks.lib.vs.var2_proj_6090,CertiCoq.Benchmarks.lib.vs.var1_proj_6091,CertiCoq.Benchmarks.lib.vs.var0_proj_6092,y_proj_6093,CertiCoq.Benchmarks.lib.vs.compare_clause_proj_6094,CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_6095,CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_6096,hrec_uncurried_uncurried_uncurried_proj_6097,units_proj_6098,n_proj_6099,a_proj_6100,b_proj_6101,b_proj_6102,b_6089,CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_6103,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_6104,CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_6105) in
let y_clo_6107 := con_15(y_413,env_6106) in
halt y_clo_6107
}
fun y_413<3>(env_6108,teq4_6109) :=
let y_uncurried_uncurried_clo_6110 := con_15(y_uncurried_uncurried_416,env_6108) in
let env_6111 := con_1235(y_uncurried_uncurried_clo_6110,teq4_6109) in
let y_wrapper_clo_6112 := con_15(y_wrapper_415,env_6111) in
halt y_wrapper_clo_6112
fun y_wrapper_414<3>(env_6113,teq2_6114) :=
let y_uncurried_uncurried_proj_6115 := proj_2 1233 env_6113 in
let teq4_proj_6116 := proj_1 1233 env_6113 in
let teq3_proj_6117 := proj_0 1233 env_6113 in
let y_uncurried_uncurried_code_6118 := proj_0 15 y_uncurried_uncurried_proj_6115 in
let y_uncurried_uncurried_env_6119 := proj_1 15 y_uncurried_uncurried_proj_6115 in
y_uncurried_uncurried_code_6118<5>(y_uncurried_uncurried_env_6119,teq2_6114,teq3_proj_6117,teq4_proj_6116)
fun y_wrapper_415<3>(env_6120,teq3_6121) :=
let y_uncurried_uncurried_proj_6122 := proj_0 1235 env_6120 in
let teq4_proj_6123 := proj_1 1235 env_6120 in
let env_6124 := con_1233(teq3_6121,teq4_proj_6123,y_uncurried_uncurried_proj_6122) in
let y_wrapper_clo_6125 := con_15(y_wrapper_414,env_6124) in
halt y_wrapper_clo_6125
fun y_uncurried_uncurried_416<5>(env_6126,teq2_6127,teq3_6128,teq4_6129) :=
let env_6133 := con_1241() in
let n_proj_6135 := proj_9 1230 env_6126 in
let y_6136 := app Coq.PArith.BinPosDef.Pos.pred_known_217<315>(n_proj_6135) in
let a_proj_6137 := proj_10 1230 env_6126 in
let CertiCoq.Benchmarks.lib.vs.var2_proj_6138 := proj_0 1230 env_6126 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_6139 := proj_1 1230 env_6126 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_6140 := proj_2 1230 env_6126 in
let y_proj_6141 := proj_3 1230 env_6126 in
let CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_6142 := proj_14 1230 env_6126 in
let env_6143 := con_573(CertiCoq.Benchmarks.lib.vs.var0_proj_6140,CertiCoq.Benchmarks.lib.vs.var1_proj_6139,CertiCoq.Benchmarks.lib.vs.var2_proj_6138) in
let env_6144 := con_576(CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_6142,y_proj_6141) in
let y_6145 := app cclose_aux_214<19>(env_6144,a_proj_6137) in
let y_clo_6146 := con_15(y_213,env_6143) in
let y_6148 := app map_known_133<19>(y_6145,y_clo_6146) in
let units_proj_6149 := proj_8 1230 env_6126 in
let y_6151 := app app_uncurried_known_143<19>(units_proj_6149,y_6148) in
let CertiCoq.Benchmarks.lib.vs.var2_proj_6152 := proj_0 1230 env_6126 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_6153 := proj_1 1230 env_6126 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_6154 := proj_2 1230 env_6126 in
let y_proj_6155 := proj_3 1230 env_6126 in
let CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_6156 := proj_14 1230 env_6126 in
let env_6157 := con_573(CertiCoq.Benchmarks.lib.vs.var0_proj_6154,CertiCoq.Benchmarks.lib.vs.var1_proj_6153,CertiCoq.Benchmarks.lib.vs.var2_proj_6152) in
let env_6158 := con_576(CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_6156,y_proj_6155) in
let y_6159 := app cclose_aux_214<19>(env_6158,y_6151) in
let y_clo_6160 := con_15(y_213,env_6157) in
let y_6162 := app map_known_133<19>(y_6159,y_clo_6160) in
let y_6163 := con_99() in
let CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_6164 := proj_6 1230 env_6126 in
let env_6165 := con_617(CertiCoq.Benchmarks.lib.vs.compare_clause2_proj_6164,y_6163) in
let y_wrapper_clo_6166 := con_15(y_wrapper_223,env_6165) in
let a_proj_6167 := proj_10 1230 env_6126 in
let CertiCoq.Benchmarks.lib.vs.var2_proj_6168 := proj_0 1230 env_6126 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_6169 := proj_1 1230 env_6126 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_6170 := proj_2 1230 env_6126 in
let y_proj_6171 := proj_3 1230 env_6126 in
let CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_6172 := proj_14 1230 env_6126 in
let env_6173 := con_573(CertiCoq.Benchmarks.lib.vs.var0_proj_6170,CertiCoq.Benchmarks.lib.vs.var1_proj_6169,CertiCoq.Benchmarks.lib.vs.var2_proj_6168) in
let env_6174 := con_576(CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_6172,y_proj_6171) in
let y_6175 := app cclose_aux_214<19>(env_6174,a_proj_6167) in
let y_clo_6176 := con_15(y_213,env_6173) in
let y_6178 := app map_known_133<19>(y_6175,y_clo_6176) in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_6179 := proj_5 1230 env_6126 in
let env_6180 := con_1251(CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_6179,y_6178) in
let y_wrapper_clo_6181 := con_15(y_wrapper_419,env_6180) in
let b_proj_6182 := proj_11 1230 env_6126 in
let y_6184 := app map_known_133<19>(b_proj_6182,y_wrapper_clo_6181) in
let CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_6185 := proj_16 1230 env_6126 in
let y_6187 := app filter_known_130<19>(y_6184,CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_6185) in
let y_6188 := nil() in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_6189 := proj_5 1230 env_6126 in
let env_6190 := con_1256(CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_6189,y_6188) in
let y_wrapper_clo_6191 := con_15(y_wrapper_420,env_6190) in
let CertiCoq.Benchmarks.lib.vs.var2_proj_6192 := proj_0 1230 env_6126 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_6193 := proj_1 1230 env_6126 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_6194 := proj_2 1230 env_6126 in
let y_proj_6195 := proj_3 1230 env_6126 in
let b_proj_6196 := proj_12 1230 env_6126 in
let b_proj_6197 := proj_13 1230 env_6126 in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_6198 := proj_15 1230 env_6126 in
let env_6199 := con_1259(CertiCoq.Benchmarks.lib.vs.var2_proj_6192,CertiCoq.Benchmarks.lib.vs.var1_proj_6193,CertiCoq.Benchmarks.lib.vs.var0_proj_6194,y_proj_6195,b_proj_6196,b_proj_6197,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_6198) in
let y_clo_6200 := con_15(y_421,env_6199) in
let env_6201 := con_186(y_clo_6200) in
let y_6202 := nil() in
let y_6203 := app fold_left_uncurried_106<4>(env_6201,y_6202,y_6187) in
let CertiCoq.Benchmarks.lib.vs.var2_proj_6204 := proj_0 1230 env_6126 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_6205 := proj_1 1230 env_6126 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_6206 := proj_2 1230 env_6126 in
let y_proj_6207 := proj_3 1230 env_6126 in
let b_proj_6208 := proj_13 1230 env_6126 in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_6209 := proj_15 1230 env_6126 in
let env_6210 := con_1297(CertiCoq.Benchmarks.lib.vs.var2_proj_6204,CertiCoq.Benchmarks.lib.vs.var1_proj_6205,CertiCoq.Benchmarks.lib.vs.var0_proj_6206,y_proj_6207,b_proj_6208,y_6203,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_6209) in
let b_proj_6211 := proj_12 1230 env_6126 in
let y_6212 := app f_case_424<19>(env_6210,b_proj_6211) in
let y_6214 := app map_known_133<19>(y_6212,y_wrapper_clo_6191) in
let CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_6215 := proj_16 1230 env_6126 in
let y_6217 := app filter_known_130<19>(y_6214,CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_6215) in
let CertiCoq.Benchmarks.lib.vs.compare_clause_proj_6218 := proj_4 1230 env_6126 in
let y_6221 := app rsort_uniq_uncurried_uncurried_known_136<19>(y_6217,CertiCoq.Benchmarks.lib.vs.compare_clause_proj_6218) in
let a_proj_6222 := proj_10 1230 env_6126 in
let CertiCoq.Benchmarks.lib.vs.var2_proj_6223 := proj_0 1230 env_6126 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_6224 := proj_1 1230 env_6126 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_6225 := proj_2 1230 env_6126 in
let y_proj_6226 := proj_3 1230 env_6126 in
let CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_6227 := proj_14 1230 env_6126 in
let env_6228 := con_573(CertiCoq.Benchmarks.lib.vs.var0_proj_6225,CertiCoq.Benchmarks.lib.vs.var1_proj_6224,CertiCoq.Benchmarks.lib.vs.var2_proj_6223) in
let env_6229 := con_576(CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_proj_6227,y_proj_6226) in
let y_6230 := app cclose_aux_214<19>(env_6229,a_proj_6222) in
let y_clo_6231 := con_15(y_213,env_6228) in
let y_6233 := app map_known_133<19>(y_6230,y_clo_6231) in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_6234 := proj_5 1230 env_6126 in
let env_6235 := con_1331(CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_6234,y_6233) in
let y_wrapper_clo_6236 := con_15(y_wrapper_427,env_6235) in
let b_proj_6237 := proj_11 1230 env_6126 in
let y_6239 := app map_known_133<19>(b_proj_6237,y_wrapper_clo_6236) in
let CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_6240 := proj_16 1230 env_6126 in
let y_6242 := app filter_known_130<19>(y_6239,CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_proj_6240) in
let y_6244 := app app_uncurried_known_143<19>(y_6242,y_6221) in
let y_6247 := app rsort_uncurried_uncurried_known_221<19>(y_6244,y_wrapper_clo_6166) in
let y_6248 := con_99() in
let hrec_uncurried_uncurried_uncurried_proj_6249 := proj_7 1230 env_6126 in
let hrec_uncurried_uncurried_uncurried_code_6250 := proj_0 15 hrec_uncurried_uncurried_uncurried_proj_6249 in
let hrec_uncurried_uncurried_uncurried_env_6251 := proj_1 15 hrec_uncurried_uncurried_uncurried_proj_6249 in
let y_6252 := app hrec_uncurried_uncurried_uncurried_code_6250<6>(hrec_uncurried_uncurried_uncurried_env_6251,y_6248,y_6247,y_6162,y_6136) in
let y_wrapper_clo_6254 := con_15(y_wrapper_418,env_6133) in
Coq.Init.Specif.sig_rect_uncurried_uncurried_uncurried_uncurried_known_238<19>(y_6252,y_wrapper_clo_6254)
fun y_wrapper_417<3>(env_6255,p1_6256) :=
let rec_res_proj_6257 := proj_0 1239 env_6255 in
let y_6258 := con_99() in
let y_6259 := exist(rec_res_proj_6257,y_6258) in
halt y_6259
fun y_wrapper_418<3>(env_6260,rec_res_6261) :=
let env_6262 := con_1239(rec_res_6261) in
let y_wrapper_clo_6263 := con_15(y_wrapper_417,env_6262) in
halt y_wrapper_clo_6263
fun y_wrapper_419<3>(env_6264,c_6265) :=
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_6266 := proj_0 1251 env_6264 in
let y_proj_6267 := proj_1 1251 env_6264 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_code_6268 := proj_0 15 CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_6266 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_env_6269 := proj_1 15 CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_6266 in
CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_code_6268<4>(CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_env_6269,c_6265,y_proj_6267)
fun y_wrapper_420<3>(env_6270,c_6271) :=
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_6272 := proj_0 1256 env_6270 in
let y_proj_6273 := proj_1 1256 env_6270 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_code_6274 := proj_0 15 CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_6272 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_env_6275 := proj_1 15 CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_6272 in
CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_code_6274<4>(CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_env_6275,c_6271,y_proj_6273)
fun y_421<3>(env_6276,l0_6277) :=
let y_uncurried_clo_6278 := con_15(y_uncurried_423,env_6276) in
let env_6279 := con_1261(y_uncurried_clo_6278,l0_6277) in
let y_wrapper_clo_6280 := con_15(y_wrapper_422,env_6279) in
halt y_wrapper_clo_6280
fun y_wrapper_422<3>(env_6281,d_6282) :=
let y_uncurried_proj_6283 := proj_0 1261 env_6281 in
let l0_proj_6284 := proj_1 1261 env_6281 in
let y_uncurried_code_6285 := proj_0 15 y_uncurried_proj_6283 in
let y_uncurried_env_6286 := proj_1 15 y_uncurried_proj_6283 in
y_uncurried_code_6285<4>(y_uncurried_env_6286,d_6282,l0_proj_6284)
fun y_uncurried_423<4>(env_6287,d_6288,l0_6289) :=
let b_proj_6290 := proj_4 1259 env_6287 in
case b_proj_6290 of {
| CexpL =>
let b_proj_6291 := proj_5 1259 env_6287 in
case b_proj_6291 of {
| PureClause =>
let b_proj_6292 := proj_5 1259 env_6287 in
let gamma_6293 := proj_0 133 b_proj_6292 in
let b_proj_6294 := proj_5 1259 env_6287 in
let pos'_6295 := proj_1 133 b_proj_6294 in
case gamma_6293 of {
| nil =>
halt l0_6289
| cons =>
let p_6296 := proj_0 149 gamma_6293 in
let neg'_6297 := proj_1 149 gamma_6293 in
case p_6296 of {
| Eqv =>
let s'_6298 := proj_0 141 p_6296 in
let v_6299 := proj_1 141 p_6296 in
case d_6288 of {
| PureClause =>
let neg_6300 := proj_0 133 d_6288 in
let delta_6301 := proj_1 133 d_6288 in
case delta_6301 of {
| nil =>
halt l0_6289
| cons =>
let p0_6302 := proj_0 149 delta_6301 in
let pos_6303 := proj_1 149 delta_6301 in
case p0_6302 of {
| Eqv =>
let s_6304 := proj_0 141 p0_6302 in
let t_6305 := proj_1 141 p0_6302 in
case s_6304 of {
| Nil =>
halt l0_6289
| Var =>
let s0_6306 := proj_0 143 s_6304 in
let y_proj_6308 := proj_3 1259 env_6287 in
let y_6309 := app CertiCoq.Benchmarks.lib.vs.expr_eq_uncurried_known_187<4>(s'_6298,s_6304,y_proj_6308) in
let y_proj_6311 := proj_3 1259 env_6287 in
let y_6312 := app CertiCoq.Benchmarks.lib.vs.expr_lt_uncurried_known_185<4>(s_6304,t_6305,y_proj_6311) in
let y_6314 := app Coq.Init.Datatypes.andb_uncurried_known_173<19>(y_6312,y_6309) in
let y_proj_6316 := proj_3 1259 env_6287 in
let y_6317 := app CertiCoq.Benchmarks.lib.vs.expr_lt_uncurried_known_185<4>(s'_6298,v_6299,y_proj_6316) in
let y_6319 := app Coq.Init.Datatypes.andb_uncurried_known_173<19>(y_6317,y_6314) in
let y_6320 := Eqv(s_6304,t_6305) in
let y_proj_6322 := proj_3 1259 env_6287 in
let y_6323 := app CertiCoq.Benchmarks.lib.vs.Superposition.pure_atom_gt1_uncurried_known_237<4>(pos_6303,y_6320,y_proj_6322) in
let y_6325 := app Coq.Init.Datatypes.andb_uncurried_known_173<19>(y_6323,y_6319) in
let y_proj_6326 := proj_3 1259 env_6287 in
let env_6327 := con_456(s0_6306,y_proj_6326) in
let y_wrapper_clo_6328 := con_15(y_wrapper_184,env_6327) in
let y_6330 := app forallb_known_174<19>(neg_6300,y_wrapper_clo_6328) in
let y_6332 := app Coq.Init.Datatypes.andb_uncurried_known_173<19>(y_6330,y_6325) in
case y_6332 of {
| true =>
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_6333 := proj_6 1259 env_6287 in
let y_6334 := Eqv(t_6305,v_6299) in
let y_proj_6336 := proj_3 1259 env_6287 in
let y_6337 := app CertiCoq.Benchmarks.lib.vs.norm_pure_atom_known_188<19>(y_6334,y_proj_6336) in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_6338 := proj_6 1259 env_6287 in
let env_6339 := con_655(neg_6300,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_6338) in
let y_6340 := app merge_aux_235<19>(env_6339,neg'_6297) in
let y_6343 := app insert_uniq_uncurried_uncurried_uncurried_known_135<4>(y_6340,y_6337,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_6333) in
let CertiCoq.Benchmarks.lib.vs.var2_proj_6344 := proj_0 1259 env_6287 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_6345 := proj_1 1259 env_6287 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_6346 := proj_2 1259 env_6287 in
let env_6347 := con_282(y_6343,CertiCoq.Benchmarks.lib.vs.var0_proj_6346,CertiCoq.Benchmarks.lib.vs.var1_proj_6345,CertiCoq.Benchmarks.lib.vs.var2_proj_6344) in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_6348 := proj_6 1259 env_6287 in
let env_6349 := con_655(pos_6303,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_6348) in
let y_6350 := app merge_aux_235<19>(env_6349,pos'_6295) in
let y_6351 := app y_134<19>(env_6347,y_6350) in
let y_6352 := cons(y_6351,l0_6289) in
halt y_6352
| false =>
halt l0_6289
}
}
}
}
| PosSpaceClause =>
halt l0_6289
| NegSpaceClause =>
halt l0_6289
}
}
}
| PosSpaceClause =>
halt l0_6289
| NegSpaceClause =>
halt l0_6289
}
| CexpR =>
let b_proj_6353 := proj_5 1259 env_6287 in
case b_proj_6353 of {
| PureClause =>
let b_proj_6354 := proj_5 1259 env_6287 in
let neg_6355 := proj_0 133 b_proj_6354 in
let b_proj_6356 := proj_5 1259 env_6287 in
let delta_6357 := proj_1 133 b_proj_6356 in
case delta_6357 of {
| nil =>
halt l0_6289
| cons =>
let p_6358 := proj_0 149 delta_6357 in
let pos_6359 := proj_1 149 delta_6357 in
case p_6358 of {
| Eqv =>
let s_6360 := proj_0 141 p_6358 in
let t_6361 := proj_1 141 p_6358 in
case s_6360 of {
| Nil =>
halt l0_6289
| Var =>
let s0_6362 := proj_0 143 s_6360 in
case d_6288 of {
| PureClause =>
let neg'_6363 := proj_0 133 d_6288 in
let delta0_6364 := proj_1 133 d_6288 in
case delta0_6364 of {
| nil =>
halt l0_6289
| cons =>
let p0_6365 := proj_0 149 delta0_6364 in
let pos'_6366 := proj_1 149 delta0_6364 in
case p0_6365 of {
| Eqv =>
let s'_6367 := proj_0 141 p0_6365 in
let v_6368 := proj_1 141 p0_6365 in
case s'_6367 of {
| Nil =>
halt l0_6289
| Var =>
let s'0_6369 := proj_0 143 s'_6367 in
let y_proj_6371 := proj_3 1259 env_6287 in
let y_6372 := app CertiCoq.Benchmarks.lib.vs.expr_eq_uncurried_known_187<4>(s'_6367,s_6360,y_proj_6371) in
let y_proj_6374 := proj_3 1259 env_6287 in
let y_6375 := app CertiCoq.Benchmarks.lib.vs.expr_lt_uncurried_known_185<4>(s_6360,t_6361,y_proj_6374) in
let y_6377 := app Coq.Init.Datatypes.andb_uncurried_known_173<19>(y_6375,y_6372) in
let y_proj_6379 := proj_3 1259 env_6287 in
let y_6380 := app CertiCoq.Benchmarks.lib.vs.expr_lt_uncurried_known_185<4>(s'_6367,v_6368,y_proj_6379) in
let y_6382 := app Coq.Init.Datatypes.andb_uncurried_known_173<19>(y_6380,y_6377) in
let y_6383 := Eqv(s_6360,t_6361) in
let y_proj_6385 := proj_3 1259 env_6287 in
let y_6386 := app CertiCoq.Benchmarks.lib.vs.Superposition.pure_atom_gt1_uncurried_known_237<4>(pos_6359,y_6383,y_proj_6385) in
let y_6388 := app Coq.Init.Datatypes.andb_uncurried_known_173<19>(y_6386,y_6382) in
let y_6389 := Eqv(s'_6367,v_6368) in
let y_proj_6391 := proj_3 1259 env_6287 in
let y_6392 := app CertiCoq.Benchmarks.lib.vs.Superposition.pure_atom_gt1_uncurried_known_237<4>(pos'_6366,y_6389,y_proj_6391) in
let y_6394 := app Coq.Init.Datatypes.andb_uncurried_known_173<19>(y_6392,y_6388) in
let y_6395 := Eqv(s_6360,t_6361) in
let y_6396 := Eqv(s'_6367,v_6368) in
let y_proj_6398 := proj_3 1259 env_6287 in
let y_6399 := app CertiCoq.Benchmarks.lib.vs.pure_atom_gt_uncurried_known_236<4>(y_6396,y_6395,y_proj_6398) in
let y_6401 := app Coq.Init.Datatypes.andb_uncurried_known_173<19>(y_6399,y_6394) in
let y_proj_6402 := proj_3 1259 env_6287 in
let env_6403 := con_456(s0_6362,y_proj_6402) in
let y_wrapper_clo_6404 := con_15(y_wrapper_184,env_6403) in
let y_6406 := app forallb_known_174<19>(neg_6355,y_wrapper_clo_6404) in
let y_6408 := app Coq.Init.Datatypes.andb_uncurried_known_173<19>(y_6406,y_6401) in
let y_proj_6409 := proj_3 1259 env_6287 in
let env_6410 := con_456(s'0_6369,y_proj_6409) in
let y_wrapper_clo_6411 := con_15(y_wrapper_184,env_6410) in
let y_6413 := app forallb_known_174<19>(neg'_6363,y_wrapper_clo_6411) in
let y_6415 := app Coq.Init.Datatypes.andb_uncurried_known_173<19>(y_6413,y_6408) in
case y_6415 of {
| true =>
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_6416 := proj_6 1259 env_6287 in
let env_6417 := con_655(neg_6355,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_6416) in
let y_6418 := app merge_aux_235<19>(env_6417,neg'_6363) in
let CertiCoq.Benchmarks.lib.vs.var2_proj_6419 := proj_0 1259 env_6287 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_6420 := proj_1 1259 env_6287 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_6421 := proj_2 1259 env_6287 in
let env_6422 := con_282(y_6418,CertiCoq.Benchmarks.lib.vs.var0_proj_6421,CertiCoq.Benchmarks.lib.vs.var1_proj_6420,CertiCoq.Benchmarks.lib.vs.var2_proj_6419) in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_6423 := proj_6 1259 env_6287 in
let y_6424 := Eqv(t_6361,v_6368) in
let y_proj_6426 := proj_3 1259 env_6287 in
let y_6427 := app CertiCoq.Benchmarks.lib.vs.norm_pure_atom_known_188<19>(y_6424,y_proj_6426) in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_6428 := proj_6 1259 env_6287 in
let env_6429 := con_655(pos_6359,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_6428) in
let y_6430 := app merge_aux_235<19>(env_6429,pos'_6366) in
let y_6433 := app insert_uniq_uncurried_uncurried_uncurried_known_135<4>(y_6430,y_6427,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_6423) in
let y_6434 := app y_134<19>(env_6422,y_6433) in
let y_6435 := cons(y_6434,l0_6289) in
halt y_6435
| false =>
halt l0_6289
}
}
}
}
| PosSpaceClause =>
halt l0_6289
| NegSpaceClause =>
halt l0_6289
}
}
}
}
| PosSpaceClause =>
halt l0_6289
| NegSpaceClause =>
halt l0_6289
}
| CexpEf =>
halt l0_6289
}
fun f_case_424<19>(env_6436,s_6437) :=
case s_6437 of {
| CexpL =>
let y_proj_6438 := proj_5 1297 env_6436 in
halt y_proj_6438
| CexpR =>
let y_proj_6439 := proj_5 1297 env_6436 in
halt y_proj_6439
| CexpEf =>
let b_proj_6440 := proj_4 1297 env_6436 in
case b_proj_6440 of {
| PureClause =>
let b_proj_6441 := proj_4 1297 env_6436 in
let neg_6442 := proj_0 133 b_proj_6441 in
let b_proj_6443 := proj_4 1297 env_6436 in
let delta_6444 := proj_1 133 b_proj_6443 in
case delta_6444 of {
| nil =>
let y_proj_6445 := proj_5 1297 env_6436 in
halt y_proj_6445
| cons =>
let p_6446 := proj_0 149 delta_6444 in
let pos_6447 := proj_1 149 delta_6444 in
case p_6446 of {
| Eqv =>
let u_6448 := proj_0 141 p_6446 in
let v_6449 := proj_1 141 p_6446 in
case u_6448 of {
| Nil =>
let y_proj_6450 := proj_5 1297 env_6436 in
halt y_proj_6450
| Var =>
let u0_6451 := proj_0 143 u_6448 in
let y_proj_6452 := proj_3 1297 env_6436 in
let env_6453 := con_456(u0_6451,y_proj_6452) in
let y_wrapper_clo_6454 := con_15(y_wrapper_184,env_6453) in
let y_6456 := app forallb_known_174<19>(neg_6442,y_wrapper_clo_6454) in
case y_6456 of {
| true =>
let y_6457 := nil() in
let CertiCoq.Benchmarks.lib.vs.var2_proj_6458 := proj_0 1297 env_6436 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_6459 := proj_1 1297 env_6436 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_6460 := proj_2 1297 env_6436 in
let y_proj_6461 := proj_3 1297 env_6436 in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_6462 := proj_6 1297 env_6436 in
let env_6463 := con_1299(CertiCoq.Benchmarks.lib.vs.var2_proj_6458,CertiCoq.Benchmarks.lib.vs.var1_proj_6459,CertiCoq.Benchmarks.lib.vs.var0_proj_6460,y_proj_6461,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_6462) in
let y_proj_6464 := proj_5 1297 env_6436 in
ef_aux_uncurried_uncurried_uncurried_uncurried_uncurried_uncurried_426<9>(env_6463,y_proj_6464,pos_6447,y_6457,v_6449,u_6448,u0_6451,neg_6442)
| false =>
let y_proj_6465 := proj_5 1297 env_6436 in
halt y_proj_6465
}
}
}
}
| PosSpaceClause =>
let y_proj_6466 := proj_5 1297 env_6436 in
halt y_proj_6466
| NegSpaceClause =>
let y_proj_6467 := proj_5 1297 env_6436 in
halt y_proj_6467
}
}
fun y_425<19>(env_6468,l0_6469) :=
let ef_aux_uncurried_uncurried_uncurried_uncurried_uncurried_uncurried_proj_6470 := proj_6 1305 env_6468 in
let pos_proj_6471 := proj_1 1305 env_6468 in
let pos0_proj_6472 := proj_0 1305 env_6468 in
let v_proj_6473 := proj_2 1305 env_6468 in
let u_proj_6474 := proj_3 1305 env_6468 in
let u0_proj_6475 := proj_4 1305 env_6468 in
let neg_proj_6476 := proj_5 1305 env_6468 in
let ef_aux_uncurried_uncurried_uncurried_uncurried_uncurried_uncurried_code_6477 := proj_0 15 ef_aux_uncurried_uncurried_uncurried_uncurried_uncurried_uncurried_proj_6470 in
let ef_aux_uncurried_uncurried_uncurried_uncurried_uncurried_uncurried_env_6478 := proj_1 15 ef_aux_uncurried_uncurried_uncurried_uncurried_uncurried_uncurried_proj_6470 in
ef_aux_uncurried_uncurried_uncurried_uncurried_uncurried_uncurried_code_6477<9>(ef_aux_uncurried_uncurried_uncurried_uncurried_uncurried_uncurried_env_6478,l0_6469,pos_proj_6471,pos0_proj_6472,v_proj_6473,u_proj_6474,u0_proj_6475,neg_proj_6476)
fun ef_aux_uncurried_uncurried_uncurried_uncurried_uncurried_uncurried_426<9>(env_6479,l0_6480,pos_6481,pos0_6482,v_6483,u_6484,u0_6485,neg_6486) :=
case pos_6481 of {
| nil =>
halt l0_6480
| cons =>
let a2_6487 := proj_0 149 pos_6481 in
let pos'_6488 := proj_1 149 pos_6481 in
case a2_6487 of {
| Eqv =>
let s_6489 := proj_0 141 a2_6487 in
let t_6490 := proj_1 141 a2_6487 in
let y_proj_6492 := proj_3 1299 env_6479 in
let y_6493 := app CertiCoq.Benchmarks.lib.vs.expr_eq_uncurried_known_187<4>(u_6484,s_6489,y_proj_6492) in
let y_proj_6494 := proj_3 1299 env_6479 in
let env_6495 := con_456(u0_6485,y_proj_6494) in
let y_wrapper_clo_6496 := con_15(y_wrapper_184,env_6495) in
let y_6498 := app forallb_known_174<19>(neg_6486,y_wrapper_clo_6496) in
let y_6500 := app Coq.Init.Datatypes.andb_uncurried_known_173<19>(y_6498,y_6493) in
case y_6500 of {
| true =>
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_6501 := proj_4 1299 env_6479 in
let y_6502 := Eqv(v_6483,t_6490) in
let y_proj_6504 := proj_3 1299 env_6479 in
let y_6505 := app CertiCoq.Benchmarks.lib.vs.norm_pure_atom_known_188<19>(y_6502,y_proj_6504) in
let y_6508 := app insert_uniq_uncurried_uncurried_uncurried_known_135<4>(neg_6486,y_6505,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_6501) in
let CertiCoq.Benchmarks.lib.vs.var2_proj_6509 := proj_0 1299 env_6479 in
let CertiCoq.Benchmarks.lib.vs.var1_proj_6510 := proj_1 1299 env_6479 in
let CertiCoq.Benchmarks.lib.vs.var0_proj_6511 := proj_2 1299 env_6479 in
let env_6512 := con_282(y_6508,CertiCoq.Benchmarks.lib.vs.var0_proj_6511,CertiCoq.Benchmarks.lib.vs.var1_proj_6510,CertiCoq.Benchmarks.lib.vs.var2_proj_6509) in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_6513 := proj_4 1299 env_6479 in
let y_6514 := Eqv(u_6484,t_6490) in
let y_proj_6516 := proj_3 1299 env_6479 in
let y_6517 := app CertiCoq.Benchmarks.lib.vs.norm_pure_atom_known_188<19>(y_6514,y_proj_6516) in
let y_6519 := app rev_known_181<313>(pos0_6482) in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_6520 := proj_4 1299 env_6479 in
let env_6521 := con_655(y_6519,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_6520) in
let y_6522 := app merge_aux_235<19>(env_6521,pos_6481) in
let y_6525 := app insert_uniq_uncurried_uncurried_uncurried_known_135<4>(y_6522,y_6517,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_6513) in
let y_6526 := app y_134<19>(env_6512,y_6525) in
let ef_aux_uncurried_uncurried_uncurried_uncurried_uncurried_uncurried_clo_6527 := con_15(ef_aux_uncurried_uncurried_uncurried_uncurried_uncurried_uncurried_426,env_6479) in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_6528 := proj_4 1299 env_6479 in
let y_6531 := app insert_uniq_uncurried_uncurried_uncurried_known_135<4>(pos0_6482,a2_6487,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_proj_6528) in
let env_6532 := con_1305(y_6531,pos'_6488,v_6483,u_6484,u0_6485,neg_6486,ef_aux_uncurried_uncurried_uncurried_uncurried_uncurried_uncurried_clo_6527) in
let y_6533 := app y_425<19>(env_6532,l0_6480) in
let y_6534 := cons(y_6526,y_6533) in
halt y_6534
| false =>
halt l0_6480
}
}
}
fun y_wrapper_427<3>(env_6535,c_6536) :=
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_6537 := proj_0 1331 env_6535 in
let y_proj_6538 := proj_1 1331 env_6535 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_code_6539 := proj_0 15 CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_6537 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_env_6540 := proj_1 15 CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_6537 in
CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_code_6539<4>(CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_env_6540,c_6536,y_proj_6538)
fun y_wrapper_428<3>(env_6541,c_6542) :=
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_6543 := proj_0 1339 env_6541 in
let y_proj_6544 := proj_1 1339 env_6541 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_code_6545 := proj_0 15 CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_6543 in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_env_6546 := proj_1 15 CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_proj_6543 in
CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_code_6545<4>(CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_env_6546,c_6542,y_proj_6544)
fun partial_mod_uncurried_uncurried_429<104>(env_6547,l_6548,acc_6549,R_6550) :=
case l_6548 of {
| nil =>
let y_6551 := pair(R_6550,acc_6549) in
let y_6552 := inl(y_6551) in
halt y_6552
| cons =>
let cl_6553 := proj_0 149 l_6548 in
let l'_6554 := proj_1 149 l_6548 in
case cl_6553 of {
| PureClause =>
let gamma_6555 := proj_0 133 cl_6553 in
let delta_6556 := proj_1 133 cl_6553 in
let y_6558 := app rev_known_181<313>(R_6550) in
let CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_proj_6559 := proj_1 1342 env_6547 in
let CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_code_6560 := proj_0 15 CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_proj_6559 in
let CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_env_6561 := proj_1 15 CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_proj_6559 in
let y_6562 := app CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_code_6560<5>(CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_env_6561,delta_6556,gamma_6555,y_6558) in
case y_6562 of {
| true =>
partial_mod_uncurried_uncurried_429<104>(env_6547,l'_6554,acc_6549,R_6550)
| false =>
let y_proj_6563 := proj_0 1342 env_6547 in
let CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_proj_6564 := proj_1 1342 env_6547 in
let env_6565 := con_1344(y_proj_6563,CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_proj_6564,R_6550,cl_6553) in
let y_6566 := app f_case_430<19>(env_6565,cl_6553) in
case y_6566 of {
| inl =>
let p_6567 := proj_0 108 y_6566 in
case p_6567 of {
| pair =>
let p0_6568 := proj_0 147 p_6567 in
let cl'_6569 := proj_1 147 p_6567 in
case p0_6568 of {
| pair =>
let v_6570 := proj_0 147 p0_6568 in
let exp_6571 := proj_1 147 p0_6568 in
let y_6572 := pair(v_6570,exp_6571) in
let y_6573 := cons(y_6572,R_6550) in
let y_6574 := cons(cl'_6569,acc_6549) in
partial_mod_uncurried_uncurried_429<104>(env_6547,l'_6554,y_6574,y_6573)
}
}
| inr =>
let cty_6575 := proj_0 109 y_6566 in
let y_6576 := pair(R_6550,cl_6553) in
let y_6577 := pair(y_6576,cty_6575) in
let y_6578 := inr(y_6577) in
halt y_6578
}
}
| PosSpaceClause =>
let y_6579 := pair(R_6550,acc_6549) in
let y_6580 := inl(y_6579) in
halt y_6580
| NegSpaceClause =>
let y_6581 := pair(R_6550,acc_6549) in
let y_6582 := inl(y_6581) in
halt y_6582
}
}
fun f_case_430<19>(env_6583,s_6584) :=
case s_6584 of {
| PureClause =>
let gamma_6585 := proj_0 133 s_6584 in
let delta0_6586 := proj_1 133 s_6584 in
case delta0_6586 of {
| nil =>
let y_6587 := CexpL() in
let y_6588 := inr(y_6587) in
halt y_6588
| cons =>
let p_6589 := proj_0 149 delta0_6586 in
let delta_6590 := proj_1 149 delta0_6586 in
case p_6589 of {
| Eqv =>
let l_6591 := proj_0 141 p_6589 in
let r_6592 := proj_1 141 p_6589 in
case l_6591 of {
| Nil =>
let y_6593 := CexpL() in
let y_6594 := inr(y_6593) in
halt y_6594
| Var =>
let l'_6595 := proj_0 143 l_6591 in
let y_proj_6597 := proj_0 1344 env_6583 in
let y_6598 := app CertiCoq.Benchmarks.lib.vs.greater_than_expr_uncurried_known_182<4>(r_6592,l'_6595,y_proj_6597) in
let y_proj_6599 := proj_0 1344 env_6583 in
let env_6600 := con_456(l'_6595,y_proj_6599) in
let y_wrapper_clo_6601 := con_15(y_wrapper_184,env_6600) in
let y_6603 := app forallb_known_174<19>(gamma_6585,y_wrapper_clo_6601) in
let y_6605 := app Coq.Init.Datatypes.andb_uncurried_known_173<19>(y_6603,y_6598) in
let y_proj_6606 := proj_0 1344 env_6583 in
let env_6607 := con_1348(y_proj_6606,l_6591,r_6592) in
let y_clo_6608 := con_15(y_431,env_6607) in
let y_6610 := app forallb_known_174<19>(delta_6590,y_clo_6608) in
let y_6612 := app Coq.Init.Datatypes.andb_uncurried_known_173<19>(y_6610,y_6605) in
case y_6612 of {
| true =>
let env_6613 := con_1377(l'_6595) in
let R_proj_6614 := proj_2 1344 env_6583 in
let y_wrapper_clo_6615 := con_15(y_wrapper_433,env_6613) in
let y_6617 := app existsb_known_148<19>(R_proj_6614,y_wrapper_clo_6615) in
case y_6617 of {
| true =>
let y_6618 := CexpR() in
let y_6619 := inr(y_6618) in
halt y_6619
| false =>
let R_proj_6620 := proj_2 1344 env_6583 in
let y_6622 := app rev_known_181<313>(R_proj_6620) in
let y_6623 := nil() in
let y_proj_6624 := proj_0 1344 env_6583 in
let env_6625 := con_1384(y_proj_6624,l_6591,r_6592) in
let y_wrapper_clo_6626 := con_15(y_wrapper_434,env_6625) in
let y_6628 := app map_known_133<19>(delta_6590,y_wrapper_clo_6626) in
let CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_proj_6629 := proj_1 1344 env_6583 in
let CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_code_6630 := proj_0 15 CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_proj_6629 in
let CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_env_6631 := proj_1 15 CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_proj_6629 in
let y_6632 := app CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_code_6630<5>(CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_env_6631,y_6628,y_6623,y_6622) in
case y_6632 of {
| true =>
let y_6633 := CexpEf() in
let y_6634 := inr(y_6633) in
halt y_6634
| false =>
let y_6635 := pair(l'_6595,r_6592) in
let cl_proj_6636 := proj_3 1344 env_6583 in
let y_6637 := pair(y_6635,cl_proj_6636) in
let y_6638 := inl(y_6637) in
halt y_6638
}
}
| false =>
let y_6639 := CexpL() in
let y_6640 := inr(y_6639) in
halt y_6640
}
}
}
}
| PosSpaceClause =>
let y_6641 := CexpL() in
let y_6642 := inr(y_6641) in
halt y_6642
| NegSpaceClause =>
let y_6643 := CexpL() in
let y_6644 := inr(y_6643) in
halt y_6644
}
fun y_431<3>(env_6645,u_6646) :=
case u_6646 of {
| Eqv =>
let u_6647 := proj_0 141 u_6646 in
let v_6648 := proj_1 141 u_6646 in
let l_proj_6650 := proj_1 1348 env_6645 in
let y_proj_6651 := proj_0 1348 env_6645 in
let y_6652 := app CertiCoq.Benchmarks.lib.vs.expr_lt_uncurried_known_185<4>(l_proj_6650,u_6647,y_proj_6651) in
let l_proj_6654 := proj_1 1348 env_6645 in
let y_proj_6655 := proj_0 1348 env_6645 in
let y_6656 := app CertiCoq.Benchmarks.lib.vs.expr_geq_uncurried_known_186<4>(v_6648,l_proj_6654,y_proj_6655) in
let r_proj_6658 := proj_2 1348 env_6645 in
let y_proj_6659 := proj_0 1348 env_6645 in
let y_6660 := app CertiCoq.Benchmarks.lib.vs.expr_geq_uncurried_known_186<4>(v_6648,r_proj_6658,y_proj_6659) in
let y_6662 := app Coq.Init.Datatypes.orb_uncurried_known_147<19>(y_6660,y_6656) in
let y_6664 := app Coq.Init.Datatypes.andb_uncurried_known_173<19>(y_6662,y_6652) in
let l_proj_6666 := proj_1 1348 env_6645 in
let y_proj_6667 := proj_0 1348 env_6645 in
let y_6668 := app CertiCoq.Benchmarks.lib.vs.expr_lt_uncurried_known_185<4>(l_proj_6666,v_6648,y_proj_6667) in
let l_proj_6670 := proj_1 1348 env_6645 in
let y_proj_6671 := proj_0 1348 env_6645 in
let y_6672 := app CertiCoq.Benchmarks.lib.vs.expr_geq_uncurried_known_186<4>(u_6647,l_proj_6670,y_proj_6671) in
let r_proj_6674 := proj_2 1348 env_6645 in
let y_proj_6675 := proj_0 1348 env_6645 in
let y_6676 := app CertiCoq.Benchmarks.lib.vs.expr_geq_uncurried_known_186<4>(u_6647,r_proj_6674,y_proj_6675) in
let y_6678 := app Coq.Init.Datatypes.orb_uncurried_known_147<19>(y_6676,y_6672) in
let y_6680 := app Coq.Init.Datatypes.andb_uncurried_known_173<19>(y_6678,y_6668) in
let y_6682 := app Coq.Init.Datatypes.orb_uncurried_known_147<19>(y_6680,y_6664) in
let r_proj_6684 := proj_2 1348 env_6645 in
let y_proj_6685 := proj_0 1348 env_6645 in
let y_6686 := app CertiCoq.Benchmarks.lib.vs.expr_lt_uncurried_known_185<4>(r_proj_6684,u_6647,y_proj_6685) in
let l_proj_6688 := proj_1 1348 env_6645 in
let y_proj_6689 := proj_0 1348 env_6645 in
let y_6690 := app CertiCoq.Benchmarks.lib.vs.expr_geq_uncurried_known_186<4>(v_6648,l_proj_6688,y_proj_6689) in
let r_proj_6692 := proj_2 1348 env_6645 in
let y_proj_6693 := proj_0 1348 env_6645 in
let y_6694 := app CertiCoq.Benchmarks.lib.vs.expr_geq_uncurried_known_186<4>(v_6648,r_proj_6692,y_proj_6693) in
let y_6696 := app Coq.Init.Datatypes.orb_uncurried_known_147<19>(y_6694,y_6690) in
let y_6698 := app Coq.Init.Datatypes.andb_uncurried_known_173<19>(y_6696,y_6686) in
let r_proj_6700 := proj_2 1348 env_6645 in
let y_proj_6701 := proj_0 1348 env_6645 in
let y_6702 := app CertiCoq.Benchmarks.lib.vs.expr_lt_uncurried_known_185<4>(r_proj_6700,v_6648,y_proj_6701) in
let l_proj_6704 := proj_1 1348 env_6645 in
let y_proj_6705 := proj_0 1348 env_6645 in
let y_6706 := app CertiCoq.Benchmarks.lib.vs.expr_geq_uncurried_known_186<4>(u_6647,l_proj_6704,y_proj_6705) in
let r_proj_6708 := proj_2 1348 env_6645 in
let y_proj_6709 := proj_0 1348 env_6645 in
let y_6710 := app CertiCoq.Benchmarks.lib.vs.expr_geq_uncurried_known_186<4>(u_6647,r_proj_6708,y_proj_6709) in
let y_6712 := app Coq.Init.Datatypes.orb_uncurried_known_147<19>(y_6710,y_6706) in
let y_6714 := app Coq.Init.Datatypes.andb_uncurried_known_173<19>(y_6712,y_6702) in
let y_6716 := app Coq.Init.Datatypes.orb_uncurried_known_147<19>(y_6714,y_6698) in
Coq.Init.Datatypes.orb_uncurried_known_147<19>(y_6716,y_6682)
}
fun y_known_432<19>(ve'_6719,l'_6720) :=
let y_6724 := app Coq.Init.Datatypes.fst_uncurried_uncurried_known_170<309>(ve'_6719) in
let y_6726 := app F_known_158<308>(l'_6720) in
let y_code_6727 := proj_0 15 y_6726 in
let y_env_6728 := proj_1 15 y_6726 in
let y_6729 := app y_code_6727<3>(y_env_6728,y_6724) in
case y_6729 of {
| left =>
let y_6730 := true() in
halt y_6730
| right =>
let y_6731 := false() in
halt y_6731
}
fun y_wrapper_433<3>(env_6732,ve'_6733) :=
let l'_proj_6735 := proj_0 1377 env_6732 in
y_known_432<19>(ve'_6733,l'_proj_6735)
fun y_wrapper_434<3>(env_6736,atm_6737) :=
let y_proj_6738 := proj_0 1384 env_6736 in
let l_proj_6739 := proj_1 1384 env_6736 in
let r_proj_6740 := proj_2 1384 env_6736 in
CertiCoq.Benchmarks.lib.vs.Superposition.rewrite_by_uncurried_uncurried_known_189<104>(atm_6737,r_proj_6740,l_proj_6739,y_proj_6738)
fun partition_known_435<325>(l_6743) :=
case l_6743 of {
| nil =>
let y_6744 := nil() in
let y_6745 := nil() in
let y_6746 := pair(y_6744,y_6745) in
halt y_6746
| cons =>
let x_6747 := proj_0 149 l_6743 in
let tl_6748 := proj_1 149 l_6743 in
let y_6749 := app partition_known_435<325>(tl_6748) in
case y_6749 of {
| pair =>
let g_6750 := proj_0 147 y_6749 in
let d_6751 := proj_1 147 y_6749 in
let y_6753 := app f_case_known_436<326>(x_6747) in
case y_6753 of {
| true =>
let y_6754 := cons(x_6747,g_6750) in
let y_6755 := pair(y_6754,d_6751) in
halt y_6755
| false =>
let y_6756 := cons(x_6747,d_6751) in
let y_6757 := pair(g_6750,y_6756) in
halt y_6757
}
}
}
fun f_case_known_436<326>(s_6759) :=
case s_6759 of {
| PureClause =>
let gamma_6760 := proj_0 133 s_6759 in
let delta_6761 := proj_1 133 s_6759 in
case gamma_6760 of {
| nil =>
case delta_6761 of {
| nil =>
let y_6762 := false() in
halt y_6762
| cons =>
let l_6763 := proj_1 149 delta_6761 in
case l_6763 of {
| nil =>
let y_6764 := true() in
halt y_6764
| cons =>
let y_6765 := false() in
halt y_6765
}
}
| cons =>
let y_6766 := false() in
halt y_6766
}
| PosSpaceClause =>
let y_6767 := false() in
halt y_6767
| NegSpaceClause =>
let y_6768 := false() in
halt y_6768
}
] in
let y_6770 := xH() in
let y_6771 := xO(y_6770) in
let y_6772 := Zpos(y_6771) in
let CertiCoq.Benchmarks.lib.vs.var2_6773 := app CertiCoq.Benchmarks.lib.vs.Z2id_known_105<303>(y_6772) in
let y_6774 := xH() in
let y_6775 := Zpos(y_6774) in
let CertiCoq.Benchmarks.lib.vs.var1_6776 := app CertiCoq.Benchmarks.lib.vs.Z2id_known_105<303>(y_6775) in
let y_6777 := Z0() in
let CertiCoq.Benchmarks.lib.vs.var0_6778 := app CertiCoq.Benchmarks.lib.vs.Z2id_known_105<303>(y_6777) in
let y_6779 := Eq() in
let y_6780 := xH() in
let y_6781 := xI(y_6780) in
let y_6782 := xI(y_6781) in
let y_6783 := xI(y_6782) in
let y_6784 := xI(y_6783) in
let y_6785 := xO(y_6784) in
let y_6786 := xI(y_6785) in
let y_6787 := xO(y_6786) in
let y_6788 := xO(y_6787) in
let y_6789 := xO(y_6788) in
let y_6790 := Zpos(y_6789) in
let CertiCoq.Benchmarks.lib.vs.prio1000_6791 := app CertiCoq.Benchmarks.lib.vs.Z2id_known_105<303>(y_6790) in
let y_6792 := xH() in
let y_6793 := xI(y_6792) in
let y_6794 := xI(y_6793) in
let y_6795 := xI(y_6794) in
let y_6796 := xI(y_6795) in
let y_6797 := xO(y_6796) in
let y_6798 := xI(y_6797) in
let y_6799 := xO(y_6798) in
let y_6800 := xO(y_6799) in
let y_6801 := xI(y_6800) in
let y_6802 := Zpos(y_6801) in
let CertiCoq.Benchmarks.lib.vs.prio1001_6803 := app CertiCoq.Benchmarks.lib.vs.Z2id_known_105<303>(y_6802) in
let env_6804 := con_205(y_6779) in
let env_6805 := con_214(y_6779) in
let env_6806 := con_227(y_6779) in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_clo_6807 := con_15(CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_115,env_6805) in
let CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_clo_6808 := con_15(CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_118,env_6806) in
let env_6809 := con_229(CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_clo_6807,CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_clo_6808) in
let CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_clo_6810 := con_15(CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_121,env_6809) in
let env_6811 := con_241(y_6779,CertiCoq.Benchmarks.lib.vs.prio1000_6791,CertiCoq.Benchmarks.lib.vs.prio1001_6803,CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_clo_6810) in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_clo_6812 := con_15(CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_122,env_6811) in
let env_6813 := con_251(CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_clo_6812) in
let CertiCoq.Benchmarks.lib.vs.M.Raw.empty_6814 := Leaf() in
let y_6815 := con_99() in
let CertiCoq.Benchmarks.lib.vs.M.empty_6816 := Mkt(CertiCoq.Benchmarks.lib.vs.M.Raw.empty_6814,y_6815) in
let y_6817 := con_99() in
let env_6818 := con_302(y_6779) in
let env_6819 := con_306(y_6779) in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_clo_6820 := con_15(CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_115,env_6805) in
let CertiCoq.Benchmarks.lib.vs.order_eqv_pure_atom_wrapper_clo_6821 := con_15(CertiCoq.Benchmarks.lib.vs.order_eqv_pure_atom_wrapper_138,env_6818) in
let CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_clo_6822 := con_15(CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_140,env_6819) in
let env_6823 := con_308(CertiCoq.Benchmarks.lib.vs.var2_6773,CertiCoq.Benchmarks.lib.vs.var1_6776,CertiCoq.Benchmarks.lib.vs.var0_6778,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_clo_6820,CertiCoq.Benchmarks.lib.vs.order_eqv_pure_atom_wrapper_clo_6821,CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_clo_6822) in
let env_6824 := con_336(CertiCoq.Benchmarks.lib.vs.var2_6773,CertiCoq.Benchmarks.lib.vs.var1_6776,CertiCoq.Benchmarks.lib.vs.var0_6778,y_6779) in
let y_6825 := nil() in
let y_6826 := con_99() in
let env_6827 := con_357(y_6779) in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_clo_6828 := con_15(CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_115,env_6805) in
let y_wrapper_clo_6829 := con_15(y_wrapper_152,env_6827) in
let env_6830 := con_359(CertiCoq.Benchmarks.lib.vs.var2_6773,CertiCoq.Benchmarks.lib.vs.var1_6776,CertiCoq.Benchmarks.lib.vs.var0_6778,y_6826,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_clo_6828,y_wrapper_clo_6829) in
let CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_clo_6831 := con_15(CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_140,env_6819) in
let y_wrapper_clo_6832 := con_15(y_wrapper_152,env_6827) in
let env_6833 := con_423(y_6826,CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_clo_6831,y_wrapper_clo_6832) in
let env_6834 := con_495(y_6779) in
let CertiCoq.Benchmarks.lib.vs.Superposition.delete_resolved_clo_6835 := con_15(CertiCoq.Benchmarks.lib.vs.Superposition.delete_resolved_153,env_6830) in
let env_6836 := con_504(CertiCoq.Benchmarks.lib.vs.var2_6773,CertiCoq.Benchmarks.lib.vs.var1_6776,CertiCoq.Benchmarks.lib.vs.var0_6778,y_6779,CertiCoq.Benchmarks.lib.vs.Superposition.delete_resolved_clo_6835) in
let env_6837 := con_632(y_6779) in
let CertiCoq.Benchmarks.lib.vs.pn_atom_cmp_wrapper_clo_6838 := con_15(CertiCoq.Benchmarks.lib.vs.pn_atom_cmp_wrapper_227,env_6837) in
let env_6839 := con_635(CertiCoq.Benchmarks.lib.vs.pn_atom_cmp_wrapper_clo_6838) in
let CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_clo_6840 := con_15(CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_121,env_6809) in
let CertiCoq.Benchmarks.lib.vs.pure_clause2pn_list_clo_6841 := con_15(CertiCoq.Benchmarks.lib.vs.pure_clause2pn_list_229,env_6839) in
let CertiCoq.Benchmarks.lib.vs.pn_atom_cmp_wrapper_clo_6842 := con_15(CertiCoq.Benchmarks.lib.vs.pn_atom_cmp_wrapper_227,env_6837) in
let env_6843 := con_648(CertiCoq.Benchmarks.lib.vs.compare_clause_uncurried_clo_6840,CertiCoq.Benchmarks.lib.vs.pure_clause2pn_list_clo_6841,CertiCoq.Benchmarks.lib.vs.pn_atom_cmp_wrapper_clo_6842) in
let y_6844 := Leaf() in
let y_6845 := nil() in
let CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_6846 := pair(y_6844,y_6845) in
let env_6847 := con_682(CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_6846) in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_clo_6848 := con_15(CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_122,env_6811) in
let env_6849 := con_711(CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_clo_6848) in
let y_6850 := nil() in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_clo_6851 := con_15(CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_122,env_6811) in
let CertiCoq.Benchmarks.lib.vs.M.Raw.add_wrapper_clo_6852 := con_15(CertiCoq.Benchmarks.lib.vs.M.Raw.add_wrapper_126,env_6813) in
let CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_clo_6853 := con_15(CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_242,env_6847) in
let env_6854 := con_737(CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_clo_6851,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_6846,y_6850,CertiCoq.Benchmarks.lib.vs.M.Raw.add_wrapper_clo_6852,CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_clo_6853) in
let CertiCoq.Benchmarks.lib.vs.M.union_uncurried_clo_6855 := con_15(CertiCoq.Benchmarks.lib.vs.M.union_uncurried_262,env_6854) in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_clo_6856 := con_15(CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_115,env_6805) in
let CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_clo_6857 := con_15(CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_242,env_6847) in
let env_6858 := con_783(CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_6846,CertiCoq.Benchmarks.lib.vs.M.union_uncurried_clo_6855,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_clo_6856,CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_clo_6857) in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_clo_6859 := con_15(CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_122,env_6811) in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_clo_6860 := con_15(CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_115,env_6805) in
let CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_clo_6861 := con_15(CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_118,env_6806) in
let CertiCoq.Benchmarks.lib.vs.order_eqv_pure_atom_wrapper_clo_6862 := con_15(CertiCoq.Benchmarks.lib.vs.order_eqv_pure_atom_wrapper_138,env_6818) in
let env_6863 := con_809(CertiCoq.Benchmarks.lib.vs.var2_6773,CertiCoq.Benchmarks.lib.vs.var1_6776,CertiCoq.Benchmarks.lib.vs.var0_6778,y_6779,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_clo_6859,CertiCoq.Benchmarks.lib.vs.M.empty_6816,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_clo_6860,CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_clo_6861,CertiCoq.Benchmarks.lib.vs.order_eqv_pure_atom_wrapper_clo_6862) in
let y_6864 := con_99() in
let env_6865 := con_850(y_6779) in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_clo_6866 := con_15(CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_115,env_6805) in
let env_6867 := con_864(CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_clo_6866) in
let CertiCoq.Benchmarks.lib.vs.compare_clause2_clo_6868 := con_15(CertiCoq.Benchmarks.lib.vs.compare_clause2_232,env_6843) in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.normalize1_3_clo_6869 := con_15(CertiCoq.Benchmarks.lib.vs.HeapResolve.normalize1_3_292,env_6867) in
let y_wrapper_clo_6870 := con_15(y_wrapper_289,env_6865) in
let env_6871 := con_878(y_6825,CertiCoq.Benchmarks.lib.vs.compare_clause2_clo_6868,y_6864,CertiCoq.Benchmarks.lib.vs.HeapResolve.normalize1_3_clo_6869,y_wrapper_clo_6870) in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_clo_6872 := con_15(CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_122,env_6811) in
let CertiCoq.Benchmarks.lib.vs.order_eqv_clause_clo_6873 := con_15(CertiCoq.Benchmarks.lib.vs.order_eqv_clause_141,env_6823) in
let CertiCoq.Benchmarks.lib.vs.M.union_uncurried_clo_6874 := con_15(CertiCoq.Benchmarks.lib.vs.M.union_uncurried_262,env_6854) in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_clo_6875 := con_15(CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_115,env_6805) in
let CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_clo_6876 := con_15(CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_118,env_6806) in
let env_6877 := con_910(CertiCoq.Benchmarks.lib.vs.var2_6773,CertiCoq.Benchmarks.lib.vs.var1_6776,CertiCoq.Benchmarks.lib.vs.var0_6778,y_6779,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_clo_6872,CertiCoq.Benchmarks.lib.vs.M.empty_6816,CertiCoq.Benchmarks.lib.vs.order_eqv_clause_clo_6873,CertiCoq.Benchmarks.lib.vs.M.union_uncurried_clo_6874,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_clo_6875,CertiCoq.Benchmarks.lib.vs.compare_space_atom_wrapper_clo_6876) in
let y_6878 := nil() in
let y_6879 := nil() in
let y_6883 := app list_prio_uncurried_uncurried_uncurried_known_104<4>(CertiCoq.Benchmarks.lib.vs.var0_6778,y_6879,CertiCoq.Benchmarks.lib.vs.var1_6776) in
let y_6885 := app list_prio_uncurried_uncurried_uncurried_known_104<4>(y_6883,y_6878,CertiCoq.Benchmarks.lib.vs.var2_6773) in
let y_6886 := con_99() in
let y_6887 := PureClause(y_6878,y_6879,y_6885,y_6886) in
let y_6888 := xH() in
let y_6889 := xI(y_6888) in
let CertiCoq.Benchmarks.lib.vs.c_6890 := Var(y_6889) in
let y_6891 := xH() in
let y_6892 := xO(y_6891) in
let y_6893 := xI(y_6892) in
let CertiCoq.Benchmarks.lib.vs.e_6894 := Var(y_6893) in
let y_6895 := xH() in
let CertiCoq.Benchmarks.lib.vs.a_6896 := Var(y_6895) in
let y_6897 := xH() in
let y_6898 := xO(y_6897) in
let CertiCoq.Benchmarks.lib.vs.b_6899 := Var(y_6898) in
let y_6900 := xH() in
let y_6901 := xO(y_6900) in
let y_6902 := xO(y_6901) in
let CertiCoq.Benchmarks.lib.vs.d_6903 := Var(y_6902) in
let y_6904 := Nequ(CertiCoq.Benchmarks.lib.vs.c_6890,CertiCoq.Benchmarks.lib.vs.e_6894) in
let y_6905 := nil() in
let y_6906 := cons(y_6904,y_6905) in
let y_6907 := Lseg(CertiCoq.Benchmarks.lib.vs.a_6896,CertiCoq.Benchmarks.lib.vs.b_6899) in
let y_6908 := Lseg(CertiCoq.Benchmarks.lib.vs.a_6896,CertiCoq.Benchmarks.lib.vs.c_6890) in
let y_6909 := Next(CertiCoq.Benchmarks.lib.vs.c_6890,CertiCoq.Benchmarks.lib.vs.d_6903) in
let y_6910 := Lseg(CertiCoq.Benchmarks.lib.vs.d_6903,CertiCoq.Benchmarks.lib.vs.e_6894) in
let y_6911 := nil() in
let y_6912 := cons(y_6910,y_6911) in
let y_6913 := cons(y_6909,y_6912) in
let y_6914 := cons(y_6908,y_6913) in
let y_6915 := cons(y_6907,y_6914) in
let y_6916 := Assertion(y_6906,y_6915) in
let y_6917 := nil() in
let y_6918 := Lseg(CertiCoq.Benchmarks.lib.vs.b_6899,CertiCoq.Benchmarks.lib.vs.c_6890) in
let y_6919 := Lseg(CertiCoq.Benchmarks.lib.vs.c_6890,CertiCoq.Benchmarks.lib.vs.e_6894) in
let y_6920 := nil() in
let y_6921 := cons(y_6919,y_6920) in
let y_6922 := cons(y_6918,y_6921) in
let y_6923 := Assertion(y_6917,y_6922) in
let CertiCoq.Benchmarks.lib.vs.example_ent_6924 := Entailment(y_6916,y_6923) in
let CertiCoq.Benchmarks.lib.vs.compare_clause_clo_6925 := con_15(CertiCoq.Benchmarks.lib.vs.compare_clause_119,env_6809) in
let CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_clo_6926 := con_15(CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_122,env_6811) in
let CertiCoq.Benchmarks.lib.vs.order_eqv_clause_clo_6927 := con_15(CertiCoq.Benchmarks.lib.vs.order_eqv_clause_141,env_6823) in
let CertiCoq.Benchmarks.lib.vs.mk_pureL_clo_6928 := con_15(CertiCoq.Benchmarks.lib.vs.mk_pureL_144,env_6824) in
let CertiCoq.Benchmarks.lib.vs.Superposition.delete_resolved_clo_6929 := con_15(CertiCoq.Benchmarks.lib.vs.Superposition.delete_resolved_153,env_6830) in
let CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_clo_6930 := con_15(CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_175,env_6833) in
let CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_clo_6931 := con_15(CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_199,env_6836) in
let CertiCoq.Benchmarks.lib.vs.compare_clause2_clo_6932 := con_15(CertiCoq.Benchmarks.lib.vs.compare_clause2_232,env_6843) in
let CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_clo_6933 := con_15(CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_253,env_6849) in
let CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_clo_6934 := con_15(CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_272,env_6858) in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_clo_6935 := con_15(CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_279,env_6863) in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_clo_6936 := con_15(CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_295,env_6871) in
let CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_clo_6937 := con_15(CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_303,env_6877) in
let CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_clo_6938 := con_15(CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_112,env_6804) in
let CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_clo_6939 := con_15(CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_115,env_6805) in
let CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_clo_6940 := con_15(CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_140,env_6819) in
let y_wrapper_clo_6941 := con_15(y_wrapper_152,env_6827) in
let CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_clo_6942 := con_15(CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_196,env_6834) in
let CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_clo_6943 := con_15(CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_242,env_6847) in
let env_6944 := con_1036(CertiCoq.Benchmarks.lib.vs.var2_6773,CertiCoq.Benchmarks.lib.vs.var1_6776,CertiCoq.Benchmarks.lib.vs.var0_6778,y_6779,CertiCoq.Benchmarks.lib.vs.compare_clause_clo_6925,CertiCoq.Benchmarks.lib.vs.compare_clause'_uncurried_clo_6926,CertiCoq.Benchmarks.lib.vs.M.empty_6816,y_6817,CertiCoq.Benchmarks.lib.vs.order_eqv_clause_clo_6927,CertiCoq.Benchmarks.lib.vs.mk_pureL_clo_6928,y_6825,y_6826,CertiCoq.Benchmarks.lib.vs.Superposition.delete_resolved_clo_6929,CertiCoq.Benchmarks.lib.vs.Superposition.is_model_of_uncurried_uncurried_clo_6930,CertiCoq.Benchmarks.lib.vs.Superposition.simplify_uncurried_clo_6931,CertiCoq.Benchmarks.lib.vs.compare_clause2_clo_6932,CertiCoq.Benchmarks.lib.vs.M.Raw.bogus_6846,CertiCoq.Benchmarks.lib.vs.M.compare_uncurried_clo_6933,CertiCoq.Benchmarks.lib.vs.VeriStar.incorp_uncurried_clo_6934,CertiCoq.Benchmarks.lib.vs.HeapResolve.do_wellformed_clo_6935,CertiCoq.Benchmarks.lib.vs.HeapResolve.norm_uncurried_clo_6936,CertiCoq.Benchmarks.lib.vs.HeapResolve.unfolding_uncurried_clo_6937,y_6887,CertiCoq.Benchmarks.lib.vs.example_ent_6924,CertiCoq.Benchmarks.lib.vs.expr_cmp_wrapper_clo_6938,CertiCoq.Benchmarks.lib.vs.pure_atom_cmp_wrapper_clo_6939,CertiCoq.Benchmarks.lib.vs.nonreflex_atom_wrapper_clo_6940,y_wrapper_clo_6941,CertiCoq.Benchmarks.lib.vs.Superposition.not_taut_wrapper_clo_6942,CertiCoq.Benchmarks.lib.vs.M.Raw.treeify_one_wrapper_clo_6943) in
let y_6945 := O() in
let y_6946 := S(y_6945) in
let y_6947 := S(y_6946) in
let y_6948 := S(y_6947) in
let y_6949 := S(y_6948) in
let y_6950 := S(y_6949) in
let y_6951 := S(y_6950) in
let y_6952 := S(y_6951) in
let y_6953 := S(y_6952) in
let y_6954 := S(y_6953) in
let y_6955 := S(y_6954) in
let y_6956 := S(y_6955) in
let y_6957 := S(y_6956) in
let y_6958 := S(y_6957) in
let y_6959 := S(y_6958) in
let y_6960 := S(y_6959) in
let y_6961 := S(y_6960) in
let y_6962 := S(y_6961) in
let y_6963 := S(y_6962) in
let y_6964 := S(y_6963) in
let y_6965 := S(y_6964) in
let y_6966 := S(y_6965) in
let y_6967 := S(y_6966) in
let y_6968 := S(y_6967) in
let y_6969 := S(y_6968) in
let y_6970 := S(y_6969) in
let y_6971 := S(y_6970) in
let y_6972 := S(y_6971) in
let y_6973 := S(y_6972) in
let y_6974 := S(y_6973) in
let y_6975 := S(y_6974) in
let y_6976 := S(y_6975) in
let y_6977 := S(y_6976) in
let y_6978 := S(y_6977) in
let y_6979 := S(y_6978) in
let y_6980 := S(y_6979) in
let y_6981 := S(y_6980) in
let y_6982 := S(y_6981) in
let y_6983 := S(y_6982) in
let y_6984 := S(y_6983) in
let y_6985 := S(y_6984) in
let y_6986 := S(y_6985) in
let y_6987 := S(y_6986) in
let y_6988 := S(y_6987) in
let y_6989 := S(y_6988) in
let y_6990 := S(y_6989) in
let y_6991 := S(y_6990) in
let y_6992 := S(y_6991) in
let y_6993 := S(y_6992) in
let y_6994 := S(y_6993) in
let y_6995 := S(y_6994) in
let y_6996 := S(y_6995) in
let y_6997 := S(y_6996) in
let y_6998 := S(y_6997) in
let y_6999 := S(y_6998) in
let y_7000 := S(y_6999) in
let y_7001 := S(y_7000) in
let y_7002 := S(y_7001) in
let y_7003 := S(y_7002) in
let y_7004 := S(y_7003) in
let y_7005 := S(y_7004) in
let y_7006 := S(y_7005) in
let y_7007 := S(y_7006) in
let y_7008 := S(y_7007) in
let y_7009 := S(y_7008) in
let y_7010 := S(y_7009) in
let y_7011 := S(y_7010) in
let y_7012 := S(y_7011) in
let y_7013 := S(y_7012) in
let y_7014 := S(y_7013) in
let y_7015 := S(y_7014) in
let y_7016 := S(y_7015) in
let y_7017 := S(y_7016) in
let y_7018 := S(y_7017) in
let y_7019 := S(y_7018) in
let y_7020 := S(y_7019) in
let y_7021 := S(y_7020) in
let y_7022 := S(y_7021) in
let y_7023 := S(y_7022) in
let y_7024 := S(y_7023) in
let y_7025 := S(y_7024) in
let y_7026 := S(y_7025) in
let y_7027 := S(y_7026) in
let y_7028 := S(y_7027) in
let y_7029 := S(y_7028) in
let y_7030 := S(y_7029) in
let y_7031 := S(y_7030) in
let y_7032 := S(y_7031) in
let y_7033 := S(y_7032) in
let y_7034 := S(y_7033) in
let y_7035 := S(y_7034) in
let y_7036 := S(y_7035) in
let y_7037 := S(y_7036) in
let y_7038 := S(y_7037) in
let y_7039 := S(y_7038) in
let y_7040 := S(y_7039) in
let y_7041 := S(y_7040) in
let y_7042 := S(y_7041) in
let y_7043 := S(y_7042) in
let y_7044 := S(y_7043) in
let y_7045 := S(y_7044) in
let y_7046 := Valid() in
let CertiCoq.Benchmarks.tests.vs_easy_7047 := app loop_uncurried_334<4>(env_6944,y_7046,y_7045) in
halt CertiCoq.Benchmarks.tests.vs_easy_7047
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment