[ { "header": "Definition", "tactic": "Wp.unfold", "params": {}, "select": { "select": "inside-goal", "occur": 0, "target": "(L_l_FloatQuat_of_RMat_2_max_t Mf32_0 rm_0)", "pattern": "L_l_FloatQuat_of_RMat_2_max_t$Mf32" }, "children": { "Unfold 'L_l_FloatQuat_of_RMat_2_max_t'": [ { "header": "Definition", "tactic": "Wp.unfold", "params": {}, "select": { "select": "inside-goal", "occur": 0, "target": "(L_transpose (L_l_RMat_of_FloatRMat Mf32_0 rm_0))", "pattern": "L_transposeL_l_RMat_of_FloatRMat" }, "children": { "Unfold 'L_transpose'": [ { "header": "Definition", "tactic": "Wp.unfold", "params": {}, "select": { "select": "inside-step", "at": 3, "kind": "have", "occur": 0, "target": "(L_trace_2_ Mf32_1 rm_0)", "pattern": "L_trace_2_$Mf32$rm" }, "children": { "Unfold 'L_trace_2_'": [ { "header": "Definition", "tactic": "Wp.unfold", "params": {}, "select": { "select": "inside-step", "at": 3, "kind": "have", "occur": 0, "target": "(L_trace_1_ (L_l_RMat_of_FloatRMat Mf32_1 rm_0))", "pattern": "L_trace_1_L_l_RMat_of_FloatRMat$Mf32" }, "children": { "Unfold 'L_trace_1_'": [ { "header": "Definition", "tactic": "Wp.unfold", "params": {}, "select": { "select": "inside-goal", "occur": 0, "target": "(L_l_Quat_of_FloatQuat Mf32_0 q_0)", "pattern": "L_l_Quat_of_FloatQuat$Mf32$q" }, "children": { "Unfold 'L_l_Quat_of_FloatQuat'": [ { "header": "Definition", "tactic": "Wp.unfold", "params": {}, "select": { "select": "inside-goal", "occur": 0, "target": "let a_0 = (L_l_RMat_of_FloatRMat Mf32_0 rm_0) in\n(L_l_FloatQuat_of_RMat_2_max_1_\n {\n a_0 with\n F12_RealRMat_s_a01 = a_0.F12_RealRMat_s_a10 ;\n F12_RealRMat_s_a02 = a_0.F12_RealRMat_s_a20 ;\n F12_RealRMat_s_a10 = a_0.F12_RealRMat_s_a01 ;\n F12_RealRMat_s_a12 = a_0.F12_RealRMat_s_a21 ;\n F12_RealRMat_s_a20 = a_0.F12_RealRMat_s_a02 ;\n F12_RealRMat_s_a21 = a_0.F12_RealRMat_s_a12\n })", "pattern": "L_l_FloatQuat_of_RMat_2_max_1_{RealRMat_s}" }, "children": { "Unfold 'L_l_FloatQuat_of_RMat_2_max_1_'": [ { "prover": "Alt-Ergo:2.3.3", "verdict": "valid", "time": 2.0645, "steps": 1001 }, { "header": "Definition", "tactic": "Wp.unfold", "params": {}, "select": { "select": "clause-goal", "target": "let a_0 = (L_l_RMat_of_FloatRMat Mf32_0 rm_0) in\nlet r_0 =\n (\\sqrt\n (1+a_0.F9_RealRMat_s_a22-a_0.F9_RealRMat_s_a00-a_0.F9_RealRMat_s_a11)) in\nlet r_1 = (2*r_0) in\n(EqS10_RealQuat_s\n {\n F10_RealQuat_s_qi =\n (a_0.F9_RealRMat_s_a01-a_0.F9_RealRMat_s_a10) div r_1 ;\n F10_RealQuat_s_qx =\n (a_0.F9_RealRMat_s_a02+a_0.F9_RealRMat_s_a20) div r_1 ;\n F10_RealQuat_s_qy =\n (a_0.F9_RealRMat_s_a12+a_0.F9_RealRMat_s_a21) div r_1 ;\n F10_RealQuat_s_qz = 1/2*r_0\n }\n {\n F10_RealQuat_s_qi = Mf32_0[(shiftfield_F4_FloatQuat_qi q_0)] ;\n F10_RealQuat_s_qx = Mf32_0[(shiftfield_F4_FloatQuat_qx q_0)] ;\n F10_RealQuat_s_qy = Mf32_0[(shiftfield_F4_FloatQuat_qy q_0)] ;\n F10_RealQuat_s_qz = Mf32_0[(shiftfield_F4_FloatQuat_qz q_0)]\n })", "pattern": "EqS10_RealQuat_s{RealQuat_s}{RealQuat_s}" }, "children": { "Unfold 'EqS10_RealQuat_s'": [ { "header": "Definition", "tactic": "Wp.unfold", "params": {}, "select": { "select": "inside-goal", "occur": 0, "target": "(L_l_RMat_of_FloatRMat Mf32_0 rm_0)", "pattern": "L_l_RMat_of_FloatRMat$Mf32$rm" }, "children": { "Unfold 'L_l_RMat_of_FloatRMat'": [ { "header": "Split", "tactic": "Wp.split", "params": {}, "select": { "select": "clause-goal", "target": "let a_0 = (shiftfield_F6_FloatRMat_m rm_0) in\nlet r_0 =\n (\\sqrt\n (1+Mf32_0[(shift_float32 a_0 8)]-Mf32_0[(shift_float32 a_0 0)]-\n Mf32_0[(shift_float32 a_0 4)])) in\nlet r_1 = (2*r_0) in\n(Mf32_0[(shiftfield_F4_FloatQuat_qz q_0)]=(1/2*r_0))\n/\\ (Mf32_0[(shiftfield_F4_FloatQuat_qi q_0)]=\n ((Mf32_0[(shift_float32 a_0 1)]-Mf32_0[(shift_float32 a_0 3)]) div r_1))\n/\\ (Mf32_0[(shiftfield_F4_FloatQuat_qx q_0)]=\n ((Mf32_0[(shift_float32 a_0 2)]+Mf32_0[(shift_float32 a_0 6)]) div r_1))\n/\\ (Mf32_0[(shiftfield_F4_FloatQuat_qy q_0)]=\n ((Mf32_0[(shift_float32 a_0 5)]+Mf32_0[(shift_float32 a_0 7)]) div r_1))", "pattern": "&====[]*[]/[]/[]/$Mf32shiftfield_F4_FloatQuat_qz" }, "children": { "Goal 1/4": [ { "prover": "Alt-Ergo:2.3.3", "verdict": "valid", "time": 4.0255, "steps": 752 } ], "Goal 2/4": [ { "prover": "Alt-Ergo:2.3.3", "verdict": "valid", "time": 4.6182, "steps": 779 } ], "Goal 3/4": [ { "prover": "Alt-Ergo:2.3.3", "verdict": "valid", "time": 4.7327, "steps": 778 } ], "Goal 4/4": [ { "prover": "Alt-Ergo:2.3.3", "verdict": "valid", "time": 3.5847, "steps": 778 } ] } } ] } } ] } } ] } } ] } } ] } } ] } } ] } } ] } } ]