1- use egg:: {
2- Applier , EGraph , ENodeOrVar , Id , Language , Pattern , PatternAst , RecExpr , Searcher , Subst ,
3- Symbol , Var ,
4- } ;
1+ use egg:: { Applier , EGraph , Id , Pattern , PatternAst , Searcher , Subst , Symbol , Var } ;
52
63use super :: { Rise , RiseAnalysis } ;
74
@@ -73,7 +70,7 @@ impl<A: Applier<Rise, RiseAnalysis>> Applier<Rise, RiseAnalysis> for ComputeNatC
7370 rule_name : Symbol ,
7471 ) -> Vec < Id > {
7572 let expected = & egraph[ subst[ self . var ] ] . data . beta_extract . clone ( ) ;
76- let extracted = & extract_small ( egraph, & self . nat_pattern , subst) ;
73+ let extracted = & super :: extract_small ( egraph, & self . nat_pattern , subst) ;
7774 let a = & mut egraph. analysis ;
7875 if super :: check_equivalence ( a, expected, extracted) {
7976 self . applier
@@ -83,39 +80,3 @@ impl<A: Applier<Rise, RiseAnalysis>> Applier<Rise, RiseAnalysis> for ComputeNatC
8380 }
8481 }
8582}
86-
87- // Quick check for trivial cases:
88- // fn quick_check(lhs: &RecExpr<Math>, lhs_id: Id, rhs: &RecExpr<Math>, rhs_id: Id) -> bool {
89- // lhs[lhs_id].matches(&rhs[rhs_id])
90- // && lhs[lhs_id]
91- // .children()
92- // .iter()
93- // .zip(rhs[rhs_id].children())
94- // .all(|(lcid, rcid)| quick_check(lhs, *lcid, rhs, *rcid))
95- // }
96-
97- // if quick_check(expected, expected.root(), extracted, extracted.root()) {
98- // return true;
99- // }
100-
101- fn extract_small (
102- egraph : & EGraph < Rise , RiseAnalysis > ,
103- pattern : & Pattern < Rise > ,
104- subst : & Subst ,
105- ) -> RecExpr < Rise > {
106- fn rec (
107- ast : & PatternAst < Rise > ,
108- id : Id ,
109- subst : & Subst ,
110- egraph : & EGraph < Rise , RiseAnalysis > ,
111- ) -> RecExpr < Rise > {
112- match & ast[ id] {
113- ENodeOrVar :: Var ( w) => egraph[ subst[ * w] ] . data . beta_extract . clone ( ) ,
114- ENodeOrVar :: ENode ( e) => {
115- let new_e = e. clone ( ) ;
116- new_e. join_recexprs ( |i| rec ( ast, i, subst, egraph) )
117- }
118- }
119- }
120- rec ( & pattern. ast , pattern. ast . root ( ) , subst, egraph)
121- }
0 commit comments