53_a_history_of_qed
We've done some fairly elaborate versions of grep that construct DFAs dynamically on demand, use Boyer - Moore techniques for fast searching of fixed strings, and so on.

%3 0053_0002__'ve 've 0053_0003__done done 0053_0002__'ve->0053_0003__done [scope] 0053_0001__We We 0053_0003__done->0053_0001__We [arg0] 0053_0004__some_7__versions some_versions 0053_0003__done->0053_0004__some_7__versions [arg1] 0053_0006__elaborate elaborate 0053_0004__some_7__versions->0053_0006__elaborate [attrib] 0053_0009__grep grep 0053_0004__some_7__versions->0053_0009__grep of 0053_0005__fairly fairly 0053_0006__elaborate->0053_0005__fairly [qual] 0053_0011__construct construct 0053_0011__construct->0053_0004__some_7__versions [inv][arg0] 0053_0012__DFAs DFAs 0053_0011__construct->0053_0012__DFAs [arg1] 0053_0013__dynamically dynamically 0053_0011__construct->0053_0013__dynamically [nim] 0053_0015__demand demand 0053_0011__construct->0053_0015__demand on[nim] 0053_0017__use use 0053_0017__use->0053_0004__some_7__versions [inv][arg0] 0053_0021__techniques techniques 0053_0017__use->0053_0021__techniques [arg1] 0053_0018__Boyer_20__Moore Boyer_Moore 0053_0021__techniques->0053_0018__Boyer_20__Moore [modifier] 0053_0024__searching searching 0053_0021__techniques->0053_0024__searching for 0053_0023__fast fast 0053_0024__searching->0053_0023__fast [attrib] 0053_0027__strings strings 0053_0024__searching->0053_0027__strings of 0053_0026__fixed fixed 0053_0027__strings->0053_0026__fixed [attrib] 0053_0029__and and 0053_0029__and->0053_0011__construct [conj1] 0053_0029__and->0053_0017__use [conj2] 0053_5016 0053_0029__and->0053_5016 [conj3] 0053_5016->0053_0004__some_7__versions [inv][arg0] 0053_0030__so_on so_on 0053_5016->0053_0030__so_on [nim]
arc(r_0053_0002___apos_ve,r_0053_0003__done,scope).
arc(r_0053_0003__done,r_0053_0001__We,arg0).
arc(r_0053_0003__done,r_0053_0004__some_r_0053_0007__versions,arg1).
arc(r_0053_0004__some_r_0053_0007__versions,r_0053_0006__elaborate,attrib).
arc(r_0053_0004__some_r_0053_0007__versions,r_0053_0009__grep,r_0053_0008__of).
arc(r_0053_0006__elaborate,r_0053_0005__fairly,qual).
arc(r_0053_0011__construct,r_0053_0004__some_r_0053_0007__versions,inv_arg0).
arc(r_0053_0011__construct,r_0053_0012__DFAs,arg1).
arc(r_0053_0011__construct,r_0053_0013__dynamically,nim).
arc(r_0053_0011__construct,r_0053_0015__demand,r_0053_0014__on__nim).
arc(r_0053_0017__use,r_0053_0004__some_r_0053_0007__versions,inv_arg0).
arc(r_0053_0017__use,r_0053_0021__techniques,arg1).
arc(r_0053_0021__techniques,r_0053_0018__Boyer_r_0053_0020__Moore,modifier).
arc(r_0053_0021__techniques,r_0053_0024__searching,r_0053_0022__for).
arc(r_0053_0024__searching,r_0053_0023__fast,attrib).
arc(r_0053_0024__searching,r_0053_0027__strings,r_0053_0025__of).
arc(r_0053_0027__strings,r_0053_0026__fixed,attrib).
arc(r_0053_0029__and,r_0053_0011__construct,conj1).
arc(r_0053_0029__and,r_0053_0017__use,conj2).
arc(r_0053_0029__and,z_0053_5016,conj3).
arc(z_0053_5016,r_0053_0004__some_r_0053_0007__versions,inv_arg0).
arc(z_0053_5016,r_0053_0030__so_on,nim).

n53_a_history_of_qed n53_a_history_of_qed__1_1_1_1 We n53_a_history_of_qed__1_2_1 've n53_a_history_of_qed__1_3_1_1 done n53_a_history_of_qed__1_3_2_1_1 some n53_a_history_of_qed__1_3_2_2_1_1_1 fairly n53_a_history_of_qed__1_3_2_2_2_1 elaborate n53_a_history_of_qed__1_3_2_3_1 versions n53_a_history_of_qed__1_3_2_4_1_1 of n53_a_history_of_qed__1_3_2_4_2_1_1 grep n53_a_history_of_qed__1_3_2_5_1_1 that n53_a_history_of_qed__1_3_2_5_2_1 *T* n53_a_history_of_qed__1_3_2_5_3_1_1_1 construct n53_a_history_of_qed__1_3_2_5_3_1_2_1_1 DFAs n53_a_history_of_qed__1_3_2_5_3_1_3_1_1 dynamically n53_a_history_of_qed__1_3_2_5_3_1_4_1_1 on n53_a_history_of_qed__1_3_2_5_3_1_4_2_1_1 demand n53_a_history_of_qed__1_3_2_5_3_2_1 , n53_a_history_of_qed__1_3_2_5_3_3_1_1_1 use n53_a_history_of_qed__1_3_2_5_3_3_1_2_1_1_1 Boyer n53_a_history_of_qed__1_3_2_5_3_3_1_2_1_2_1 - n53_a_history_of_qed__1_3_2_5_3_3_1_2_1_3_1 Moore n53_a_history_of_qed__1_3_2_5_3_3_1_2_2_1 techniques n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_1_1 for n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2_1_1_1 fast n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2_2_1 searching n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2_3_1_1 of n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2_3_2_1_1_1 fixed n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2_3_2_2_1 strings n53_a_history_of_qed__1_3_2_5_3_4_1 , n53_a_history_of_qed__1_3_2_5_3_5_1_1 and n53_a_history_of_qed__1_3_2_5_3_5_2_1_1_1 so_on n53_a_history_of_qed__1_4_1 . n53_a_history_of_qed__1 IP-MAT n53_a_history_of_qed__1_1 NP-SBJ n53_a_history_of_qed__1->n53_a_history_of_qed__1_1 n53_a_history_of_qed__1_2 HVP;~cat_Ve n53_a_history_of_qed__1->n53_a_history_of_qed__1_2 n53_a_history_of_qed__1_3 IP-PPL-CAT n53_a_history_of_qed__1->n53_a_history_of_qed__1_3 n53_a_history_of_qed__1_4 PUNC n53_a_history_of_qed__1->n53_a_history_of_qed__1_4 n53_a_history_of_qed__1_1_1 PRO n53_a_history_of_qed__1_1->n53_a_history_of_qed__1_1_1 n53_a_history_of_qed__1_1_1->n53_a_history_of_qed__1_1_1_1 n53_a_history_of_qed__1_2->n53_a_history_of_qed__1_2_1 n53_a_history_of_qed__1_3_1 DON;~Tn n53_a_history_of_qed__1_3->n53_a_history_of_qed__1_3_1 n53_a_history_of_qed__1_3_2 NP-OB1 n53_a_history_of_qed__1_3->n53_a_history_of_qed__1_3_2 n53_a_history_of_qed__1_3_1->n53_a_history_of_qed__1_3_1_1 n53_a_history_of_qed__1_3_2_1 D n53_a_history_of_qed__1_3_2->n53_a_history_of_qed__1_3_2_1 n53_a_history_of_qed__1_3_2_2 ADJP n53_a_history_of_qed__1_3_2->n53_a_history_of_qed__1_3_2_2 n53_a_history_of_qed__1_3_2_3 NS n53_a_history_of_qed__1_3_2->n53_a_history_of_qed__1_3_2_3 n53_a_history_of_qed__1_3_2_4 PP n53_a_history_of_qed__1_3_2->n53_a_history_of_qed__1_3_2_4 n53_a_history_of_qed__1_3_2_5 IP-REL n53_a_history_of_qed__1_3_2->n53_a_history_of_qed__1_3_2_5 n53_a_history_of_qed__1_3_2_1->n53_a_history_of_qed__1_3_2_1_1 n53_a_history_of_qed__1_3_2_2_1 ADVP n53_a_history_of_qed__1_3_2_2->n53_a_history_of_qed__1_3_2_2_1 n53_a_history_of_qed__1_3_2_2_2 ADJ n53_a_history_of_qed__1_3_2_2->n53_a_history_of_qed__1_3_2_2_2 n53_a_history_of_qed__1_3_2_2_1_1 ADV n53_a_history_of_qed__1_3_2_2_1->n53_a_history_of_qed__1_3_2_2_1_1 n53_a_history_of_qed__1_3_2_2_1_1->n53_a_history_of_qed__1_3_2_2_1_1_1 n53_a_history_of_qed__1_3_2_2_2->n53_a_history_of_qed__1_3_2_2_2_1 n53_a_history_of_qed__1_3_2_3->n53_a_history_of_qed__1_3_2_3_1 n53_a_history_of_qed__1_3_2_4_1 P-ROLE n53_a_history_of_qed__1_3_2_4->n53_a_history_of_qed__1_3_2_4_1 n53_a_history_of_qed__1_3_2_4_2 NP n53_a_history_of_qed__1_3_2_4->n53_a_history_of_qed__1_3_2_4_2 n53_a_history_of_qed__1_3_2_4_1->n53_a_history_of_qed__1_3_2_4_1_1 n53_a_history_of_qed__1_3_2_4_2_1 NPR n53_a_history_of_qed__1_3_2_4_2->n53_a_history_of_qed__1_3_2_4_2_1 n53_a_history_of_qed__1_3_2_4_2_1->n53_a_history_of_qed__1_3_2_4_2_1_1 n53_a_history_of_qed__1_3_2_5_1 C n53_a_history_of_qed__1_3_2_5->n53_a_history_of_qed__1_3_2_5_1 n53_a_history_of_qed__1_3_2_5_2 NP-SBJ n53_a_history_of_qed__1_3_2_5->n53_a_history_of_qed__1_3_2_5_2 n53_a_history_of_qed__1_3_2_5_3 ILYR n53_a_history_of_qed__1_3_2_5->n53_a_history_of_qed__1_3_2_5_3 n53_a_history_of_qed__1_3_2_5_1->n53_a_history_of_qed__1_3_2_5_1_1 n53_a_history_of_qed__1_3_2_5_2->n53_a_history_of_qed__1_3_2_5_2_1 n53_a_history_of_qed__1_3_2_5_3_1 ILYR n53_a_history_of_qed__1_3_2_5_3->n53_a_history_of_qed__1_3_2_5_3_1 n53_a_history_of_qed__1_3_2_5_3_2 PUNC n53_a_history_of_qed__1_3_2_5_3->n53_a_history_of_qed__1_3_2_5_3_2 n53_a_history_of_qed__1_3_2_5_3_3 CONJP n53_a_history_of_qed__1_3_2_5_3->n53_a_history_of_qed__1_3_2_5_3_3 n53_a_history_of_qed__1_3_2_5_3_4 PUNC n53_a_history_of_qed__1_3_2_5_3->n53_a_history_of_qed__1_3_2_5_3_4 n53_a_history_of_qed__1_3_2_5_3_5 CONJP n53_a_history_of_qed__1_3_2_5_3->n53_a_history_of_qed__1_3_2_5_3_5 n53_a_history_of_qed__1_3_2_5_3_1_1 VBP;~ n53_a_history_of_qed__1_3_2_5_3_1->n53_a_history_of_qed__1_3_2_5_3_1_1 n53_a_history_of_qed__1_3_2_5_3_1_2 NP-OB1 n53_a_history_of_qed__1_3_2_5_3_1->n53_a_history_of_qed__1_3_2_5_3_1_2 n53_a_history_of_qed__1_3_2_5_3_1_3 ADVP-NIM n53_a_history_of_qed__1_3_2_5_3_1->n53_a_history_of_qed__1_3_2_5_3_1_3 n53_a_history_of_qed__1_3_2_5_3_1_4 PP-NIM n53_a_history_of_qed__1_3_2_5_3_1->n53_a_history_of_qed__1_3_2_5_3_1_4 n53_a_history_of_qed__1_3_2_5_3_1_1->n53_a_history_of_qed__1_3_2_5_3_1_1_1 n53_a_history_of_qed__1_3_2_5_3_1_2_1 NS n53_a_history_of_qed__1_3_2_5_3_1_2->n53_a_history_of_qed__1_3_2_5_3_1_2_1 n53_a_history_of_qed__1_3_2_5_3_1_2_1->n53_a_history_of_qed__1_3_2_5_3_1_2_1_1 n53_a_history_of_qed__1_3_2_5_3_1_3_1 ADV n53_a_history_of_qed__1_3_2_5_3_1_3->n53_a_history_of_qed__1_3_2_5_3_1_3_1 n53_a_history_of_qed__1_3_2_5_3_1_3_1->n53_a_history_of_qed__1_3_2_5_3_1_3_1_1 n53_a_history_of_qed__1_3_2_5_3_1_4_1 P-ROLE n53_a_history_of_qed__1_3_2_5_3_1_4->n53_a_history_of_qed__1_3_2_5_3_1_4_1 n53_a_history_of_qed__1_3_2_5_3_1_4_2 NP n53_a_history_of_qed__1_3_2_5_3_1_4->n53_a_history_of_qed__1_3_2_5_3_1_4_2 n53_a_history_of_qed__1_3_2_5_3_1_4_1->n53_a_history_of_qed__1_3_2_5_3_1_4_1_1 n53_a_history_of_qed__1_3_2_5_3_1_4_2_1 N n53_a_history_of_qed__1_3_2_5_3_1_4_2->n53_a_history_of_qed__1_3_2_5_3_1_4_2_1 n53_a_history_of_qed__1_3_2_5_3_1_4_2_1->n53_a_history_of_qed__1_3_2_5_3_1_4_2_1_1 n53_a_history_of_qed__1_3_2_5_3_2->n53_a_history_of_qed__1_3_2_5_3_2_1 n53_a_history_of_qed__1_3_2_5_3_3_1 ILYR n53_a_history_of_qed__1_3_2_5_3_3->n53_a_history_of_qed__1_3_2_5_3_3_1 n53_a_history_of_qed__1_3_2_5_3_3_1_1 VBP;~ n53_a_history_of_qed__1_3_2_5_3_3_1->n53_a_history_of_qed__1_3_2_5_3_3_1_1 n53_a_history_of_qed__1_3_2_5_3_3_1_2 NP-OB1 n53_a_history_of_qed__1_3_2_5_3_3_1->n53_a_history_of_qed__1_3_2_5_3_3_1_2 n53_a_history_of_qed__1_3_2_5_3_3_1_1->n53_a_history_of_qed__1_3_2_5_3_3_1_1_1 n53_a_history_of_qed__1_3_2_5_3_3_1_2_1 NLYR n53_a_history_of_qed__1_3_2_5_3_3_1_2->n53_a_history_of_qed__1_3_2_5_3_3_1_2_1 n53_a_history_of_qed__1_3_2_5_3_3_1_2_2 NS n53_a_history_of_qed__1_3_2_5_3_3_1_2->n53_a_history_of_qed__1_3_2_5_3_3_1_2_2 n53_a_history_of_qed__1_3_2_5_3_3_1_2_3 PP n53_a_history_of_qed__1_3_2_5_3_3_1_2->n53_a_history_of_qed__1_3_2_5_3_3_1_2_3 n53_a_history_of_qed__1_3_2_5_3_3_1_2_1_1 NPR n53_a_history_of_qed__1_3_2_5_3_3_1_2_1->n53_a_history_of_qed__1_3_2_5_3_3_1_2_1_1 n53_a_history_of_qed__1_3_2_5_3_3_1_2_1_2 PUNC n53_a_history_of_qed__1_3_2_5_3_3_1_2_1->n53_a_history_of_qed__1_3_2_5_3_3_1_2_1_2 n53_a_history_of_qed__1_3_2_5_3_3_1_2_1_3 NPR n53_a_history_of_qed__1_3_2_5_3_3_1_2_1->n53_a_history_of_qed__1_3_2_5_3_3_1_2_1_3 n53_a_history_of_qed__1_3_2_5_3_3_1_2_1_1->n53_a_history_of_qed__1_3_2_5_3_3_1_2_1_1_1 n53_a_history_of_qed__1_3_2_5_3_3_1_2_1_2->n53_a_history_of_qed__1_3_2_5_3_3_1_2_1_2_1 n53_a_history_of_qed__1_3_2_5_3_3_1_2_1_3->n53_a_history_of_qed__1_3_2_5_3_3_1_2_1_3_1 n53_a_history_of_qed__1_3_2_5_3_3_1_2_2->n53_a_history_of_qed__1_3_2_5_3_3_1_2_2_1 n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_1 P-ROLE n53_a_history_of_qed__1_3_2_5_3_3_1_2_3->n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_1 n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2 NP n53_a_history_of_qed__1_3_2_5_3_3_1_2_3->n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2 n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_1->n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_1_1 n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2_1 ADJP n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2->n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2_1 n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2_2 N n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2->n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2_2 n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2_3 PP n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2->n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2_3 n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2_1_1 ADJ n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2_1->n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2_1_1 n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2_1_1->n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2_1_1_1 n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2_2->n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2_2_1 n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2_3_1 P-ROLE n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2_3->n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2_3_1 n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2_3_2 NP n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2_3->n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2_3_2 n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2_3_1->n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2_3_1_1 n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2_3_2_1 ADJP n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2_3_2->n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2_3_2_1 n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2_3_2_2 NS n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2_3_2->n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2_3_2_2 n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2_3_2_1_1 ADJ n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2_3_2_1->n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2_3_2_1_1 n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2_3_2_1_1->n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2_3_2_1_1_1 n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2_3_2_2->n53_a_history_of_qed__1_3_2_5_3_3_1_2_3_2_3_2_2_1 n53_a_history_of_qed__1_3_2_5_3_4->n53_a_history_of_qed__1_3_2_5_3_4_1 n53_a_history_of_qed__1_3_2_5_3_5_1 CONJ n53_a_history_of_qed__1_3_2_5_3_5->n53_a_history_of_qed__1_3_2_5_3_5_1 n53_a_history_of_qed__1_3_2_5_3_5_2 ILYR n53_a_history_of_qed__1_3_2_5_3_5->n53_a_history_of_qed__1_3_2_5_3_5_2 n53_a_history_of_qed__1_3_2_5_3_5_1->n53_a_history_of_qed__1_3_2_5_3_5_1_1 n53_a_history_of_qed__1_3_2_5_3_5_2_1 ADVP-NIM n53_a_history_of_qed__1_3_2_5_3_5_2->n53_a_history_of_qed__1_3_2_5_3_5_2_1 n53_a_history_of_qed__1_3_2_5_3_5_2_1_1 ADV n53_a_history_of_qed__1_3_2_5_3_5_2_1->n53_a_history_of_qed__1_3_2_5_3_5_2_1_1 n53_a_history_of_qed__1_3_2_5_3_5_2_1_1->n53_a_history_of_qed__1_3_2_5_3_5_2_1_1_1 n53_a_history_of_qed__1_4->n53_a_history_of_qed__1_4_1
( (IP-MAT (NP-SBJ (PRO We;{we}))
          (HVP;~cat_Ve <apos>ve;{have})
          (IP-PPL-CAT (DON;~Tn done;{do})
                      (NP-OB1 (D some;{some})
                              (ADJP (ADVP (ADV fairly;{fairly}))
                                    (ADJ elaborate;{elaborate}))
                              (NS versions;{version})
                              (PP (P-ROLE of;{of})
                                  (NP (NPR grep;{grep})))
                              (IP-REL (C that;{that})
                                      (NP-SBJ *T*)
                                      (ILYR (ILYR (VBP;~ construct;{construct})
                                                  (NP-OB1 (NS DFAs;{dfas}))
                                                  (ADVP-NIM (ADV dynamically;{dynamically}))
                                                  (PP-NIM (P-ROLE on;{on})
                                                          (NP (N demand;{demand}))))
                                            (PUNC ,)
                                            (CONJP (ILYR (VBP;~ use;{use})
                                                         (NP-OB1 (NLYR (NPR Boyer;{Boyer})
                                                                       (PUNC <hyphen>)
                                                                       (NPR Moore;{Moore}))
                                                                 (NS techniques;{technique})
                                                                 (PP (P-ROLE for;{for})
                                                                     (NP (ADJP (ADJ fast;{fast}))
                                                                         (N searching;{searching})
                                                                         (PP (P-ROLE of;{of})
                                                                             (NP (ADJP (ADJ fixed;{fixed}))
                                                                                 (NS strings;{string}))))))))
                                            (PUNC ,)
                                            (CONJP (CONJ and;{and})
                                                   (ILYR (ADVP-NIM (ADV so_on;{so_on}))))))))
          (PUNC .))
  (ID 53_a_history_of_qed))