Summary: It is possible for the canonical form of a term in (the carrier set of) a relation to be a term that is not in the relation. It is also possible for this term to be equal to a term in the relation. It is the job of the lookup subroutine of normalization to find these equations. The current implementation of entails_eq is incomplete in this case, in particular, when an uninterpreted term has an interpreted subterm, which itself has a subterm that is not a representative. This diff strengthens normalization (and hence it's callers such as entails_eq) to handle such cases. This makes lookup work slightly harder. An alternative would be to extend the carrier with new terms from normalization to the carrier and closing the relation, and then re-normalizing. That would lead to much inflated representation sizes, and is inefficient. Reviewed By: jvillard Differential Revision: D20612565 fbshipit-source-id: 3b7534a62master
							parent
							
								
									0f50d3c248
								
							
						
					
					
						commit
						c91e09031f
					
				
					Loading…
					
					
				
		Reference in new issue