![]() ![]() (1) to produce and permit the requesting party or its representative to inspect, copy, test, or sample the following items in the responding party's possession, custody, or control: A party may serve on any other party a request within the scope of Rule 26(b): and 48: apply ( erule absRel.(a) In General.and 42: The last two lemmas show equivalenc.and 38: apply ( simp add: is_prefix_def, e.and 36: lemma llist_corec_simp: " [f L = So.and 32: a by-product of these proofs and ca.and 28: state_sequence :: "Configuration.and 24: This property has more benefits tha.and 22: This definition expresses the follo.and 20: p is called a prefix of L if L = p.and 16: consts llist :: "’a item set =>.and 8: state sequence function for a simpl.and 2: Universität Karlsruhe (TH) Fakult.lemma abslnil_imp_lnil : "x �= ♦ =⇒ abstraction x �= ♦" 45 lemma lnil_abs_invariant: "abstraction ♦ = ♦ " by ( unfold abstraction_def, subst llist_corec, unfold split_finite_prefix_def, auto ) And only the empty Llist has the empty Llist as abstraction. is_max_prefix p L", erule e圎, drule boringI, drule boring_not_max_prefix, simp+ ) apply ( rule llist_corec_simp ) apply auto done lemma h4 : " =⇒ abstraction a = a " by ( unfold boring_def, erule e圎, rule boring_abs_invariant, simp ) The same is true for the empty Llist. lemma abstraction_unfold_first: " =⇒ M = abstraction r " apply ( case_tac "x=♦", simp add: abstraction_def corec_nil) apply ( drule l3, ( erule e圎 )+, case_tac "xa=a", simp ) apply ( frule_tac b="a�M" and x="a" and M="Ma" in abs_unfold ) apply ( simp, simp, assumption, simp ) apply ( drule_tac a="x" and x="xa" and y="a" and R="M" in abstraction_first_same, simp+ ) done The abstraction of a boring list is the list itsself lemma boring_abs_invariant : " L = a � L =⇒ abstraction L = L" apply ( subgoal_tac "abstraction L = a � abstraction L" ) apply ( rule boring_well_def, assumption+ ) apply ( unfold abstraction_def ) apply ( frule split_first, case_tac "∃ p. split_finite_prefix a = Some ( x, L )", erule e圎 ) apply ( drule_tac a="x" in llist_corec_simp2, simp+ ) apply ( unfold split_finite_prefix_def, auto ) done Recurse one step in the abstraction function. lemma abstraction_first_same : " =⇒ x = y" apply ( unfold abstraction_def split_finite_prefix_def ) apply ( subgoal_tac "∃ L. is_max_prefix pa then (Some (x, cut_maxn (size (max_prefix else (Some (x, L2))) "in h1c ) 44Īpply simp apply auto apply ( simp add: maxifun ) apply ( induct_tac p, auto ) done An llist and its abstraction start with the same element (if any). lemma abs_unfold: " =⇒ b = x � abstraction r" apply ( unfold abstraction_def ) apply ( rule_tac M="a" in llist_corec_simp2, simp, simp ) apply ( subst split_finite_prefix_def ) apply ( subgoal_tac = x � M" ) apply ( drule_tac P="None" and H="λ x L2. Apply ( rule conjI, rule impI ,erule e圎 ) apply ( simp add: maxifun ) apply ( subgoal_tac "p= ( Cons a ( Cons a Nil ) )" ) apply ( simp add : maxifun ) apply ( rule eqw, assumption ) apply ( rule gotSome, assumption ) apply ( rule impI, drule_tac x="( Cons a ( Cons a Nil ) )" in spec ) apply ( simp add: gotSome ) done lemma singleSplit : "a �= b =⇒ split_finite_prefix ( a � b � r ) = Some ( a, b � r )" apply ( simp add: split_finite_prefix_def ) apply ( rule impI ,erule e圎 ) apply ( simp add: maxifun ) apply ( subgoal_tac "p= ( Cons a Nil )" ) apply ( simp add : maxifun ) apply ( unfold is_max_prefix_def, ( erule conjE)+ ) apply ( subgoal_tac "p �= Nil", simp add: neq_Nil_conv, (erule e圎)+ ) apply ( frule prefixesE, simp+ ) apply ( drule prefixes_rec1 ) apply ( case_tac "ys = Nil", simp, simp add: neq_Nil_conv, ( erule e圎 )+, erule conjE ) apply ( frule_tac x="ya" and r="ysa" and l="ys" in single_element, simp+ ) apply ( drule prefixes_rec2, simp ) apply auto done lemma corec_nil : "(llist_corec ♦ split_finite_prefix = a � M ) = False" by ( subst llist_corec, unfold split_finite_prefix_def, auto ) Properties of the abstraction function If a starts with ’x’, p is a maximal prefix of a ( and r the corresponding suffix ), then the abstraction of a is ”x � abstraction r”. ![]()
0 Comments
Leave a Reply. |