pub fn run_recursion_test_machines(program: RecursionProgram<F>) {
        let program = Arc::new(program);
        let mut runtime =
            Runtime::<F, EF, DiffusionMatrixBabyBear>::new(program.clone(), SC::new().perm);
        runtime.run().unwrap();

        // Run with the poseidon2 wide chip.
        let machine = A::machine_wide_with_all_chips(BabyBearPoseidon2::default());
        let (pk, vk) = machine.setup(&program);
        run_test_machine(vec![runtime.record.clone()], machine, pk, vk)
            .expect("Verification failed");

        // Run with the poseidon2 skinny chip.
        let skinny_machine =
            B::machine_skinny_with_all_chips(BabyBearPoseidon2::ultra_compressed());
        let (pk, vk) = skinny_machine.setup(&program);
        run_test_machine(vec![runtime.record], skinny_machine, pk, vk)
            .expect("Verification failed");
    }
Runs the given program on machines that use the wide and skinny Poseidon2 chips.
crates/recursion/core/src/machine.rs