proposition: Corollary DecomposeRawQueryStructureSchema_UpdateUnConstrRelationInsertC_neq {m : nat} {qs_schema : QueryStructureSchema} {ResultT} : forall (schemaIdx : Fin.t _) (attrIdx : Fin.t _) a_proj el r_o r_n (k : UnConstrQueryStructure qs_schema -> Comp ResultT) (k' : _ -> Comp ResultT), DecomposeRawQueryStructureSchema_AbsR (qs_schema := qs_schema) (m := m) schemaIdx attrIdx a_proj el r_o r_n -> forall Ridx freshIdx tup, Ridx <> schemaIdx -> UnConstrFreshIdx (GetUnConstrRelation (fst r_n) Ridx) freshIdx -> (forall r_o' r_n', DecomposeRawQueryStructureSchema_AbsR schemaIdx attrIdx a_proj el r_o' r_n' -> refine (k r_o') (k' r_n')) -> refine (r_o' <- UpdateUnConstrRelationInsertC r_o Ridx {| elementIndex := freshIdx; indexedElement := tup |}; k r_o') (r_n' <- UpdateUnConstrRelationInsertC (fst r_n) Ridx {| elementIndex := freshIdx; indexedElement := tup |}; k' (r_n', snd r_n)).
proof: Proof. unfold UpdateUnConstrRelationInsertC; intros. repeat rewrite refineEquiv_bind_unit. rewrite H2. reflexivity. simpl; eapply DecomposeRawQueryStructureSchema_Insert_AbsR_neq; eauto. Qed.
imports: Fiat.Common.Coq__8_4__8_5__Compat Coq.Vectors.Vector Coq.Strings.Ascii Coq.Bool.Bool Coq.Lists.List Fiat.Common.SumType Fiat.Computation.ListComputations Fiat.QueryStructure.Automation.AutoDB Bedrock.Word Bedrock.Memory