XSB support for nested divisions

Issue #423 resolved
Joachim Jansen created an issue

Attached file throws error in XSB:

Error: InternalIdpException: Error in XSB: ++Error[XSB/Runtime/P]: [Syntax] idpxsb_float ( X ) :- var ( X ) , between ( idpxsb_ - 1.79769e+308 , idpxsb_1  <--- HERE? ************ 
++                                                                7.9769e+307 , X )

This float range should not be generated and the excess checks for the float sort removed

Comments (13)

  1. Joachim Jansen reporter

    Improved handling of infinite ranges with XSB.

    First: they are no longer printed as ranges. This implicitly assumes they are also not called from any of the rules. Second: Adaptations were made to the addition of instantiated variables. A list of already instantiated variables is kept and it prevents from variables being instantiated multiple times (needlessly). For the purpuse of infinite ranges, it is momentarily assumed that they are generated by being the result of operations. E.g. typing the following as part of a theory:

    x = 6/3.
    

    Will result in the type "float" being derived for x. This is no problem because the prolog code will be as follows:

    ... , IDPXSB_X is 6/3, ...
    

    after which IDPXSB_X will be considered instantiated. Hence the variable with an infinite derived type is instantiated.

    This fixes bug #423

    → <<cset 67e7aec50994>>

  2. Joachim Jansen reporter

    Improved handling of infinite ranges with XSB.

    First: they are no longer printed as ranges. This implicitly assumes they are also not called from any of the rules. Second: Adaptations were made to the addition of instantiated variables. A list of already instantiated variables is kept and it prevents from variables being instantiated multiple times (needlessly). For the purpuse of infinite ranges, it is momentarily assumed that they are generated by being the result of operations. E.g. typing the following as part of a theory:

    x = 6/3.
    

    Will result in the type "float" being derived for x. This is no problem because the prolog code will be as follows:

    ... , IDPXSB_X is 6/3, ...
    

    after which IDPXSB_X will be considered instantiated. Hence the variable with an infinite derived type is instantiated.

    This fixes bug #423

    → <<cset fbbeb09544c9>>

  3. Joachim Jansen reporter

    Improved handling of infinite ranges with XSB.

    First: they are no longer printed as ranges. This implicitly assumes they are also not called from any of the rules. Second: Adaptations were made to the addition of instantiated variables. A list of already instantiated variables is kept and it prevents from variables being instantiated multiple times (needlessly). For the purpuse of infinite ranges, it is momentarily assumed that they are generated by being the result of operations. E.g. typing the following as part of a theory:

    x = 6/3.
    

    Will result in the type "float" being derived for x. This is no problem because the prolog code will be as follows:

    ... , IDPXSB_X is 6/3, ...
    

    after which IDPXSB_X will be considered instantiated. Hence the variable with an infinite derived type is instantiated.

    This fixes bug #423

    → <<cset 67acd753ccae>>

  4. Joachim Jansen reporter

    Improved handling of infinite ranges with XSB.

    First: they are no longer printed as ranges. This implicitly assumes they are also not called from any of the rules. Second: Adaptations were made to the addition of instantiated variables. A list of already instantiated variables is kept and it prevents from variables being instantiated multiple times (needlessly). For the purpuse of infinite ranges, it is momentarily assumed that they are generated by being the result of operations. E.g. typing the following as part of a theory:

    x = 6/3.
    

    Will result in the type "float" being derived for x. This is no problem because the prolog code will be as follows:

    ... , IDPXSB_X is 6/3, ...
    

    after which IDPXSB_X will be considered instantiated. Hence the variable with an infinite derived type is instantiated.

    This fixes bug #423

    → <<cset 22f412fef643>>

  5. Joachim Jansen reporter

    Improved handling of infinite ranges with XSB.

    First: they are no longer printed as ranges. This implicitly assumes they are also not called from any of the rules. Second: Adaptations were made to the addition of instantiated variables. A list of already instantiated variables is kept and it prevents from variables being instantiated multiple times (needlessly). For the purpuse of infinite ranges, it is momentarily assumed that they are generated by being the result of operations. E.g. typing the following as part of a theory:

    x = 6/3.
    

    Will result in the type "float" being derived for x. This is no problem because the prolog code will be as follows:

    ... , IDPXSB_X is 6/3, ...
    

    after which IDPXSB_X will be considered instantiated. Hence the variable with an infinite derived type is instantiated.

    This fixes bug #423

    → <<cset 505471c2ecd5>>

  6. Joachim Jansen reporter

    Improved handling of infinite ranges with XSB.

    First: they are no longer printed as ranges. This implicitly assumes they are also not called from any of the rules. Second: Adaptations were made to the addition of instantiated variables. A list of already instantiated variables is kept and it prevents from variables being instantiated multiple times (needlessly). For the purpuse of infinite ranges, it is momentarily assumed that they are generated by being the result of operations. E.g. typing the following as part of a theory:

    x = 6/3.
    

    Will result in the type "float" being derived for x. This is no problem because the prolog code will be as follows:

    ... , IDPXSB_X is 6/3, ...
    

    after which IDPXSB_X will be considered instantiated. Hence the variable with an infinite derived type is instantiated.

    This fixes bug #423

    → <<cset eba7ad2f3b9c>>

  7. Joachim Jansen reporter

    Improved handling of infinite ranges with XSB.

    First: they are no longer printed as ranges. This implicitly assumes they are also not called from any of the rules. Second: Adaptations were made to the addition of instantiated variables. A list of already instantiated variables is kept and it prevents from variables being instantiated multiple times (needlessly). For the purpuse of infinite ranges, it is momentarily assumed that they are generated by being the result of operations. E.g. typing the following as part of a theory:

    x = 6/3.
    

    Will result in the type "float" being derived for x. This is no problem because the prolog code will be as follows:

    ... , IDPXSB_X is 6/3, ...
    

    after which IDPXSB_X will be considered instantiated. Hence the variable with an infinite derived type is instantiated.

    This fixes bug #423

    → <<cset f6da56919ebe>>

  8. Joachim Jansen reporter

    Improved handling of infinite ranges with XSB.

    First: they are no longer printed as ranges. This implicitly assumes they are also not called from any of the rules. Second: Adaptations were made to the addition of instantiated variables. A list of already instantiated variables is kept and it prevents from variables being instantiated multiple times (needlessly). For the purpuse of infinite ranges, it is momentarily assumed that they are generated by being the result of operations. E.g. typing the following as part of a theory:

    x = 6/3.
    

    Will result in the type "float" being derived for x. This is no problem because the prolog code will be as follows:

    ... , IDPXSB_X is 6/3, ...
    

    after which IDPXSB_X will be considered instantiated. Hence the variable with an infinite derived type is instantiated.

    This fixes bug #423

    → <<cset a11cca9fe91b>>

  9. Joachim Jansen reporter

    Improved handling of infinite ranges with XSB.

    First: they are no longer printed as ranges. This implicitly assumes they are also not called from any of the rules. Second: Adaptations were made to the addition of instantiated variables. A list of already instantiated variables is kept and it prevents from variables being instantiated multiple times (needlessly). For the purpuse of infinite ranges, it is momentarily assumed that they are generated by being the result of operations. E.g. typing the following as part of a theory:

    x = 6/3.
    

    Will result in the type "float" being derived for x. This is no problem because the prolog code will be as follows:

    ... , IDPXSB_X is 6/3, ...
    

    after which IDPXSB_X will be considered instantiated. Hence the variable with an infinite derived type is instantiated.

    This fixes bug #423

    → <<cset 83c82ee014c5>>

  10. Joachim Jansen reporter

    Improved handling of infinite ranges with XSB.

    First: they are no longer printed as ranges. This implicitly assumes they are also not called from any of the rules. Second: Adaptations were made to the addition of instantiated variables. A list of already instantiated variables is kept and it prevents from variables being instantiated multiple times (needlessly). For the purpuse of infinite ranges, it is momentarily assumed that they are generated by being the result of operations. E.g. typing the following as part of a theory:

    x = 6/3.
    

    Will result in the type "float" being derived for x. This is no problem because the prolog code will be as follows:

    ... , IDPXSB_X is 6/3, ...
    

    after which IDPXSB_X will be considered instantiated. Hence the variable with an infinite derived type is instantiated.

    This fixes bug #423

    → <<cset affd43bef420>>

  11. Joachim Jansen reporter

    Improved handling of infinite ranges with XSB.

    First: they are no longer printed as ranges. This implicitly assumes they are also not called from any of the rules. Second: Adaptations were made to the addition of instantiated variables. A list of already instantiated variables is kept and it prevents from variables being instantiated multiple times (needlessly). For the purpuse of infinite ranges, it is momentarily assumed that they are generated by being the result of operations. E.g. typing the following as part of a theory:

    x = 6/3.
    

    Will result in the type "float" being derived for x. This is no problem because the prolog code will be as follows:

    ... , IDPXSB_X is 6/3, ...
    

    after which IDPXSB_X will be considered instantiated. Hence the variable with an infinite derived type is instantiated.

    This fixes bug #423

    → <<cset c41f8356771c>>

  12. Joachim Jansen reporter

    Improved handling of infinite ranges with XSB.

    First: they are no longer printed as ranges. This implicitly assumes they are also not called from any of the rules. Second: Adaptations were made to the addition of instantiated variables. A list of already instantiated variables is kept and it prevents from variables being instantiated multiple times (needlessly). For the purpuse of infinite ranges, it is momentarily assumed that they are generated by being the result of operations. E.g. typing the following as part of a theory:

    x = 6/3.
    

    Will result in the type "float" being derived for x. This is no problem because the prolog code will be as follows:

    ... , IDPXSB_X is 6/3, ...
    

    after which IDPXSB_X will be considered instantiated. Hence the variable with an infinite derived type is instantiated.

    This fixes bug #423

    → <<cset 8d7ef5c1bb71>>

  13. Joachim Jansen reporter

    Improved handling of infinite ranges with XSB.

    First: they are no longer printed as ranges. This implicitly assumes they are also not called from any of the rules. Second: Adaptations were made to the addition of instantiated variables. A list of already instantiated variables is kept and it prevents from variables being instantiated multiple times (needlessly). For the purpuse of infinite ranges, it is momentarily assumed that they are generated by being the result of operations. E.g. typing the following as part of a theory:

    x = 6/3.
    

    Will result in the type "float" being derived for x. This is no problem because the prolog code will be as follows:

    ... , IDPXSB_X is 6/3, ...
    

    after which IDPXSB_X will be considered instantiated. Hence the variable with an infinite derived type is instantiated.

    This fixes bug #423

    → <<cset 8ae006559619>>

  14. Log in to comment