<=> (? A.
[SIMP_TAC[
AZIM_EQ_PI_ALT];
STRIP_TAC;
EQ_TAC;
UNDISCH_TAC ` ~collinear {
vec 0, (u:real^3), v}`;
NHANH
th3;
SIMP_TAC[
AFF_LT_2_1;
plane];
STRIP_TAC THEN STRIP_TAC;
DOWN;
REWRITE_TAC[
IN_ELIM_THM];
STRIP_TAC;
CONJ_TAC;
EXISTS_TAC `
affine hull {
vec 0, (u:real^3), v}`;
REWRITE_TAC[
AFFINE_HULL_3;
INSERT_SUBSET;
EMPTY_SUBSET];
CONJ_TAC;
EXISTS_TAC `(
vec 0):real^3 `;
EXISTS_TAC ` u:real^3 `;
EXISTS_TAC `v:real^3 `;
ASM_REWRITE_TAC[];
REWRITE_TAC[GSYM
AFFINE_HULL_3];
NGOAC;
CONJ_TAC;
MESON_TAC[
INSERT_COMM;
IN_HULL_INSERT];
REWRITE_TAC[
AFFINE_HULL_3;
IN_ELIM_THM];
DOWN THEN DOWN THEN PHA;
MESON_TAC[];
REWRITE_TAC[SET_RULE` ~( x
INTER y = {}) <=> ?a. a
IN x /\ a
IN y`];
EXISTS_TAC ` ( &1 / (&1 - t3)) % ((w:real^3) - t3 % v ) `;
REWRITE_TAC[
AFF2; Geomdetail.CONV0_SET2;
IN_ELIM_THM];
CONJ_TAC;
EXISTS_TAC ` ( &1 / (&1 - t3)) *
t1 `;
REWRITE_TAC[GSYM
VECTOR_MUL_ASSOC];
ASM_SIMP_TAC[
REAL_FIELD` t3 < &0 ==> &1 - &1 / (&1 - t3) *
t1 =
&1 / (&1 - t3) * (&1 - t3 -
t1 ) `];
REWRITE_TAC[GSYM
VECTOR_ADD_LDISTRIB; GSYM
VECTOR_MUL_ASSOC];
MATCH_MP_TAC (MESON[]` x = y ==> f x = f y`);
ASM_SIMP_TAC[REAL_RING`
t1 + t2 + t3 = &1 ==> &1 - t3 -
t1 = t2 `];
VECTOR_ARITH_TAC;
EXISTS_TAC ` ( &1 / (&1 - t3)) * ( -- t3) `;
EXISTS_TAC ` ( &1 / (&1 - t3)) `;
CONJ_TAC;
MATCH_MP_TAC
REAL_LT_MUL;
ASM_REWRITE_TAC[GSYM (REAL_FIELD` t3 < &0 <=> &0 < -- t3 `)];
MATCH_MP_TAC
REAL_LT_DIV;
ASM_REAL_ARITH_TAC;
CONJ_TAC;
MATCH_MP_TAC
REAL_LT_DIV;
ASM_REAL_ARITH_TAC;
ASM_SIMP_TAC[
REAL_FIELD` t3 < &0 ==> &1 / (&1 - t3) * --t3 + &1 / (&1 - t3) = &1 `];
VECTOR_ARITH_TAC;
ASM_SIMP_TAC[
AFF_CONV0_IN_AFF_LT]]);;