The dmlc walks the parse tree for the logical markup of a proposition and records all variables, their type, and some other potentially useful information. Here is the logical markup for the first step of Archimedes' second proposition in FB I along with the corresponding logical symbol table entries.
...
<dialog:step n='1'>
<dialog:given>
<tlg0552.tlg008:fluid_surface id='ul_abcd'>
<tlg0552.tlg008:center_of_earth id='o'/>
</tlg0552.tlg008:fluid_surface>
<tlg1799.tlg001:plane_surface id='ul_abcdo'>
<dialog:associateType ref='o' type='tlg1799.tlg001:point'/>
</tlg1799.tlg001:plane_surface>
</dialog:given>
<dialog:do>
<tlg1799.tlg001:intersection>
<dialog:emergent_primitives>
<tlg0552.tlg008:curve id='abcd'>
<tlg1799.tlg001:point id='a'/>
<tlg1799.tlg001:point id='b'/>
<tlg1799.tlg001:point id='c'/>
<tlg1799.tlg001:point id='d'/>
</tlg0552.tlg008:curve>
</dialog:emergent_primitives>
<tlg0552.tlg008:fluid_surface ref='ul_abcd'/>
<tlg1799.tlg001:plane_surface ref='ul_abcdo'/>
</tlg1799.tlg001:intersection>
</dialog:do>
</dialog:step>
...
| name | type |
| ul_abcd | tlg0552.tlg008:fluid_surface |
| o | tlg0552.tlg008:center_of_earth,tlg1799.tlg001:point |
| ul_abcdo | tlg1799.tlg001:plane_surface |
| abcd | tlg0552.tlg008:curve |
| a | tlg1799.tlg001:point |
| b | tlg1799.tlg001:point |
| c | tlg1799.tlg001:point |
| d | tlg1799.tlg001:point |
In this table, we see all the variables declared in the course of a proposition, their labels (name), and the logical types which they take on. There is also information useful for type-checking here.