From e7aebdb721f8fe8a8f7150114045f4e1f75d510d Mon Sep 17 00:00:00 2001 From: Houda Mouhcine <houda.mouhcine@inria.fr> Date: Wed, 25 Sep 2024 01:54:19 +0200 Subject: [PATCH] Change in indices. --- FEM/geom_simplex.v | 28 ++++++++++++++-------------- FEM/poly_LagPd1_ref.v | 11 +++++++---- 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/FEM/geom_simplex.v b/FEM/geom_simplex.v index 9794f769..9da0a06b 100644 --- a/FEM/geom_simplex.v +++ b/FEM/geom_simplex.v @@ -247,18 +247,18 @@ Qed. Lemma vtx_cur_invalF : forall vtx_cur, (0 < k)%coq_nat -> invalF vtx_cur (node_cur vtx_cur). Proof. -intros vtx_cur Hk i. -destruct (ord_eq_dec i ord0) as [Hi | Hi]. -(* i = ord0 *) -rewrite Hi. +intros vtx_cur Hk ipk. unfold inF. +destruct (ord_eq_dec ipk ord0) as [Hipk | Hipk]. +(* ipk = ord0 *) +rewrite Hipk. exists ord0. unfold node_cur. rewrite (Adk_0 d k) !scal_zero_r !lc_zero_l minus_zero_r scal_one plus_zero_r; easy. -(* i <> ord0 *) -exists (Adk_inv d k (itemF d k (lower_S Hi))). +(* ipk <> ord0 *) +exists (Adk_inv d k (itemF d k (lower_S Hipk))). unfold node_cur. -rewrite Adk_kron !(lc_eq_l _ (kronecker (lower_S Hi))). +rewrite Adk_kron !(lc_eq_l _ (kronecker (lower_S Hipk))). rewrite lc_ones_r sum_kronecker_r minus_eq_zero scal_zero_l plus_zero_l lc_kronecker_l_in_r liftF_lower_S; easy. @@ -319,27 +319,27 @@ Variable d : nat. Lemma vtx_node_Pd1_cur : forall (vtx_cur : 'R^{d.+1,d}) (ipk :'I_d.+1), vtx_cur ipk = node_cur d 1 vtx_cur (cast_ord (eq_sym (pbinomS_1_r d)) ipk). Proof. -intros vtx_cur i; unfold node_cur. +intros vtx_cur ipk; unfold node_cur. rewrite Rinv_1 scal_one. -destruct (ord_eq_dec i ord0) as [Hi | Hi]. -(* i = ord0 *) +destruct (ord_eq_dec ipk ord0) as [Hi | Hi]. +(* ipk = ord0 *) rewrite Hi. replace (mapF INR (Adk d 1 (cast_ord (eq_sym (pbinomS_1_r d)) ord0))) with (mapF INR (Adk d 1 ord0)). rewrite (Adk_0 d 1) !lc_zero_l minus_zero_r scal_one plus_zero_r; auto. f_equal; f_equal; apply ord_inj; easy. -(* i <> ord0 *) +(* ipk <> ord0 *) rewrite Ad1_eq. unfold castF. rewrite concatF_correct_r; simpl. apply ord_n0_nlt_equiv; easy. intros H. rewrite mapF_itemF_0// itemF_kronecker_eq; auto; simpl. -replace (fun j : 'I_d => 1 * kronecker (i - 1) j) with - (fun j : 'I_d => kronecker (i - 1) j). +replace (fun j : 'I_d => 1 * kronecker (ipk - 1) j) with + (fun j : 'I_d => kronecker (ipk - 1) j). rewrite lc_ones_r. -replace (sum (fun j : 'I_d => kronecker (i - 1) j)) with 1. +replace (sum (fun j : 'I_d => kronecker (ipk - 1) j)) with 1. rewrite minus_eq_zero scal_zero_l plus_zero_l. apply eq_sym. rewrite (lc_kronecker_l_in_r (lower_S Hi)) diff --git a/FEM/poly_LagPd1_ref.v b/FEM/poly_LagPd1_ref.v index 55591c2d..124abead 100644 --- a/FEM/poly_LagPd1_ref.v +++ b/FEM/poly_LagPd1_ref.v @@ -319,8 +319,10 @@ Variable d : nat. Lemma Pd1_lin_span_LagPd1_ref : Pdk d 1 = lin_span (LagPd1_ref d). Proof. -apply lin_span_ext; intro ipk. +unfold Pdk. +apply lin_span_ext. (* <= *) +intro ipk. destruct (ord_eq_dec ipk ord0) as [Hipk | Hipk]. (* ipk = ord0 *) apply lin_span_ex. @@ -359,7 +361,8 @@ apply cast_ordS_n0; easy. intros H1; apply fun_ext; intros x. f_equal; f_equal; easy. (* => *) -destruct (ord_eq_dec ipk ord0) as [Hipk | Hipk]. +intros j. +destruct (ord_eq_dec j ord0) as [Hj | Hj]. apply lin_span_ex. (* ipk = ord0 *) pose (L := concatF (singleF 1) (opp (@ones _ d))). @@ -398,8 +401,8 @@ apply ord_inj; simpl. rewrite bump_r; auto with arith. f_equal; apply ord_inj; easy. (* ipk <> ord0 *) -replace (LagPd1_ref d ipk) with - (BasisPdk d 1 (cast_ord (eq_sym (pbinomS_1_r d)) ipk)). +replace (LagPd1_ref d j) with + (BasisPdk d 1 (cast_ord (eq_sym (pbinomS_1_r d)) j)). apply lin_span_inclF_diag. rewrite BasisPd1_neq0; simpl. apply cast_ordS_n0; easy. -- GitLab