Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR introduces a simple relational typing example for Python AST.
This implementation is based on Racket examples provided by @jasonhemann.
ast.arg
s withast.Name
(i.e. "symbols")Sequence
sast.If
ast.Assign
ast.Expr
ast.Call
operator.getitem
Example
Here's a very simple example that infers the type of a
def
statement:The goal has inferred that the statement is a
Callable
with an unground logic variable (i.e.~tx_2408
) as the type of its only argument (this could be interpreted astyping.Any
) and afloat
-typed return value that was derived from the type promotion in the expression1 + 1.0
.