fact: Definition DynamicDGs (p : Program) (f_fsig : FieldSignature) (pivot : Location) : list Location := match pivot with | Heap.InstanceField pivot_obj pivot_fsig => match findField p pivot_fsig with | Some pivot_f => let dgs_dyn := filter (fun dg => DATA_GROUP.isDynamic dg) (FIELD.dataGroups pivot_f) in let dgs_f_target := filter (fun dg => match DATA_GROUP.pivotTarget dg with | Some (FieldDg fsig) => if FsigDec.eq_dec fsig f_fsig then true else false | _ => false end ) dgs_dyn in let dg_fsig := flat_map DATA_GROUP.dataGroups dgs_f_target in map (Heap.InstanceField pivot_obj) dg_fsig | _ => [] end | _ => [] end.
imports: Coq(List) JML(Stack) Coq(ListSet) Coq(Bool) Coq(ZArith) Coq(Relation_Operators) JML(ListHelpers) Coq(Classical) Coq(DecidableType) Coq(FSetInterface) Coq(FSetProperties) Coq(FSetEqProperties) Coq(FSetFacts) Coq(Sumbool) Coq(Lia)